第一课:类型别名/字面量类型;

153 阅读1分钟

1.类型别名:给类型取一个新名字,常用于联合类型;

type name = string;
type funCall = () => string; // 此类型是函数,最终返回为string;
type nameOrFuncall = name | funCall; // 字面量类型;

// 这里表明getName函数参数可为string或者是函数function,最终getName函数返回string;
function getName(n: nameOrFuncall): name {
    if (typeof n === 'string') {
        return n;
    }
    else {
        return n();
    }
}

2.字面量类型:用来约束取值只能是某几个字符串中的一个。

type a = string | number;
function b(x: a): a {
    return a;
}
b(true) // 报错,只能在规定字面量类型中选取;

// 类型别名与字符串字面量类型都是使用 type 进行定义。