Skip to content

类型别名

类型别名用来给一个类型起个新名字,常用于联合类型。

typescript
type Name = string;
type NameResolver = () => string;
type NameOrResolver = Name | NameResolver;
function getName(n: NameOrResolver): Name {
    if (typeof n === 'string') {
        return n;
    } else {
        return n();
    }
}

接口与类型别名

  • 都可以用来描述对象或者函数
typescript
type Foo = {
  name: string,
  age: number
}

type Bar = {
  (x: number, y: number): number
}

interface Foo {
  name: string,
  age: number
}

interface Bar {
  (x: number, y: number): number
}
  • 类型别名可以用于一些其他类型,如原始类型、联合类型、元组。
typescript
type Name = string
type StringOrNumber = string | number
type BooleanTuple = [boolean]
  • 都可以继承,但接口能继承类型别名,而类型别名不能继承接口。