Skip to content

TS清单 - 类型别名

类型别名

通俗点说,就是给一个类型另起一个名字,关键词「type」。

使用场景:一般用在「联合类型」「交叉类型」等。

js
// 一个简单的 DEMO
type Name = {
    name: string;
};
type Age = {
    age: number;
};
type Skill = {
    canCode(): boolean;
    other: number;
}
type FrontEndEngineer = Name & Age & Skill;

function getFrontEndEngineer<T>(user: T): T {
    return user;
}
let bob = getFrontEndEngineer<FrontEndEngineer>({
    name: 'Bob',
    age: 28,
    canCode: () => {
        return true
    },
    other: 10
});
console.log(bob);           // { name: 'Bob', age: 28, canCode: [Function: canCode], other: 10 }

// DEMO 2
// 定义两个简单类型 Name和ID,定义一个User类型(它可以是Name或者是ID)
type Name = string;
type ID = number;
type User = Name | ID;  // 创建一个别名类型

let bob: User = 'Bob';
let bob2: User = 430524;
let bob3: User = () => {};  // 不能将类型“() => void”分配给类型“User”。