TypeScript 高级类型-交叉类型(&)
ITPOW2019/11/29 15:10:46
使用 & 将多个类型的成员混合在一起。比如:
class C1 { f1() { alert("f1"); } } class C2 { f2() { alert("f2"); } } class C3 { f3() { alert("f3"); } } let c1 = new C1(); let c2 = new C2(); let c3 = new C3(); let c = <C1 & C2> { f1 : c1.f1, f2 : c2.f2, // f3 : c3.f3 // 这里是错误的,通不过编译 }; c.f1(); c.f2(); c.f3();
核心是 let c = <C1 & C2> {} 这句。
<C1 & C2> 表示将 C1、C2 类型的对象成员拿来混合。
{} 里面约定了具体混合哪些。
由于 <> 中并没有指定 C3,所以 f3 : c3.f3 这行实际是错误的,后面 c.f3() 那里编译就通不过。
<<返回首页<<