属性签名
interface Foo {x: number}interface Bar {y: number}/*{x: number,y: number}*/type T = Foo & Barconst obj: T = {x: 1,y: 2}
索引签名
interface Foo {[prop: string]: number}interface Bar {[prop: number]: number}type T = Foo & Bar/*{[prop: string]: number,[prop: number]: number}*/const obj: T = {x: 1,y: 2}
调用签名与构造签名
interface Foo {(name: string): string}interface Baz {(name: string): number}/*{(name: string): string,(name: string): number}*/type T = Foo & Baz
交叉类型联合类型
- & 比 | 有更高的优先级
type Foo = number & string | boolean & number// 等同于 (number & string) | (boolean & number)
