2016-06-22 6 views

答えて

2

タイプは第1の定義が与えられると、実装クラスに依存し、次のようです。TypeCheckます

class Foo implements MyType { 
    f<T>(other: T): T & this { ... } 
    g(): string { return "only in foo"; } 
} 

var foo: Foo 
var ff = foo.f("dsklf"); 
var s: string = ff.g(); 

ffためFoo & stringを入力し、したがってFooのサブタイプです。

MyTypeの2番目の定義を考えると

ff.g()MyType & stringに定義されていないので、gです。TypeCheckません。