• 两个或两个以上类型成员组成,中间用管道符 | 隔开

    属性签名

    ```typescript interface Foo { a: number, b: number }

interface Bar { b: number, c: number }

type Baz = Foo | Bar;

  1. <a name="llvan"></a>
  2. # 索引签名
  3. ```typescript
  4. interface Foo {
  5. [prop: string]: number
  6. }
  7. interface Baz {
  8. [prop: string]: string
  9. }
  10. type T = Foo | Baz
  11. // 等价于
  12. interface Bar {
  13. [prop: string]: number | string
  14. }

调用签名与构造签名

  1. interface Foo {
  2. (name: string): string
  3. }
  4. interface Baz {
  5. (name: string): number
  6. }
  7. type T = Foo | Baz
  8. // 等同于
  9. interface Bar {
  10. (name: string): number | string
  11. }
  1. interface Foo {
  2. new (name: string): string
  3. }
  4. interface Baz {
  5. new (name: string): number
  6. }
  7. type T = Foo | Baz
  8. interface Bar {
  9. new (name: string): number | string
  10. }