项目中常见的TypeScript错误汇总

本文汇总了项目中常见的TypeScript错误,包括TS2456(类型别名循环引用)、TS2554(参数个数不匹配)、TS1169(接口属性名非字面量或unique symbol类型)、TS2345(类型不兼容)、TS2589(泛型递归过深)和TS2322(字符串字面量类型不兼容)。通过示例详细解释了每个错误的原因和解决办法。
摘要由CSDN通过智能技术生成

c117ebd20bf53bbbd39167c11a5b7d33.gif

新钛云服已为您服务1431

3e3c35ffc5afe06b2d8eb09da68d0d07.gif

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:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值