. 不能用 instanceof, 因为运行时不存在 Interface
.TS 中判断是否实现接口的核心原则是基于结构而不是基于名称的. 即鸭子类型判断.
. 实现:
- interface A{
- discriminator: 'I-AM-A';
- member:string;
- }
- function instanceOfA(object: any): object is A {
- return object.discriminator === 'I-AM-A';
- }
- var a:any = {discriminator: 'I-AM-A', member:"foobar"};
- if (instanceOfA(a)) {
- alert(a.member);
- }
来源: http://www.bubuko.com/infodetail-2976287.html