type关键字

我不是梁静茹 / 2023-08-21 / 原文

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