新钛云服已为您服务1431天
TypeScript 错误信息由错误码和详细信息组成。例如:TS2456 ,其中错误码是以“TS”开头 + 数字(一般是 4 位数字)结尾这样的格式组成的字符串,用来作为特定类型错误的专属代号。
下面我们看一下那些常⻅,但在官方文档甚少提及的类型错误:
一、TS2456
首先是由于类型别名循环引用了自身造成的 TS2456 类型错误,如下示例:
type T = Readonly<T>;
// TS2456: Type alias 'T' circularly references itself.
在上面这个例子中,对于 T 这个类型别名,如果 TypeScript 编译器想知道 T 类型是什么,就需要展开类型别名赋值的 Readonly 。而为了确定 Readonly 的类型,TypeScript 编译器需要继续判断入参 T 的类型,这就形成了一个循环引用,类似函数循环调用自己,如果没有正确的终止条件,就会一直处于无限循环的状态,所以就会报错。
二、TS2554
另一个常⻅的错误就是TS2554,它是由于形参和实参个数不匹配造成的,如下:
function test(a: number | undefined): string {
if (a=== undefined) {
return '';
}
return a.toString();
}
test(); // TS2554: