Appearance
类型别名
类型别名用来给一个类型起个新名字,常用于联合类型。
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]- 都可以继承,但接口能继承类型别名,而类型别名不能继承接口。