1
の違いは何ですか:活字体 - 型交差点&このキーワード
interface MyType {
f<T>(other: T): this & T;
}
と
interface MyType {
f<T>(other: T): MyType & T;
}
は?
this
の違いは何ですか:活字体 - 型交差点&このキーワード
interface MyType {
f<T>(other: T): this & T;
}
と
interface MyType {
f<T>(other: T): MyType & T;
}
は?
this
タイプは第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ません。