type关键字
1.类型别名
作用:类型别名用来给一个类型起个新名字。
type关键字用法如下:
type Name = string; type NameResolver = () => string; type NameOrResolver = Name | NameResolver; function getName(n: NameOrResolver): Name { if (typeof n === 'string') { return n; } else { return n(); } }
备注:类型别名常用于联合类型。
2.字符串字面量类型
作用:用来约束取值只能是某几个字符串中的一个。
type关键字用法如下:
type EventNames = 'click' | 'scroll' | 'mousemove'; function handleEvent(ele: Element, event: EventNames) { // do something } handleEvent(document.getElementById('hello'), 'scroll'); // 没问题 handleEvent(document.getElementById('world'), 'dblclick'); // 报错,event 不能为 'dblclick' // index.ts(7,47): error TS2345: Argument of type '"dblclick"' is not assignable to parameter of type 'EventNames'.
本文参考文档:https://ts.xcatliu.com