1. 类型别名
type Name = string;type NameResolver = () => string;type NameOrResolver = Name | NameResolver;function getName(name: NameOrResolver): Name {if (typeof name === 'string') {return name;} else {return name();}}
上述示例中,使用type创建类型别名,类型别名常用语联合类型。
2. 字符串字面量类型
type EventNames = 'click' | 'scroll' | 'mousemove' | 'rclick' ;function handEvent(element: Element , e: EventNames){//do somethingconsole.log(e) ;}handEvent(document.getElementById('hello') , 'scroll') ;//编译出错handEvent(document.getElementById('world') , 'dbclick') ;//编译错误handEvent(document.getElementById('world') ,ype '"dbclick"' is not assignable to parameter of type 'EventNames'.
上述示例中,使用type定义一个字符串字面量类型EventNames,它只能取值定义的四种字符串中的一种。
