1. 程式人生 > >typescript如何判斷實例是否實現了接口?

typescript如何判斷實例是否實現了接口?

scrip 存在 str oba ring ofa -name var clas

·不能用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);
}

typescript如何判斷實例是否實現了接口?