TypeScript 如何看编译错误

平时写代码时,我们总希望能快速揪出问题,写 TypeScript 也不例外。很多人刚接触 TypeScript 时,最怕弹出的红色错误提示,总觉得像看天书——明明代码看着没毛病,怎么就报错了?其实只要摸透它的错误逻辑,就能把“天书”变成导航图,轻松解决问题。

先找“错误主角”:错误类型在哪

TypeScript 的编译错误,不会凭空冒出来,总跟着具体代码。打开你写的 TS 文件,错误提示要么在代码行号旁边标红,要么在终端的编译日志里用红色字体标出。比如你写了 const age = '25'; age = 30;,存文件后编辑器会在第二行“age”下面画红波浪线,把鼠标移上去,就能看到错误信息。这一步不用记术语,就像找课本上的红叉,错的地方就在叉旁边。

TypeScript 如何看编译错误

读“错误提示”的核心:抓关键信息

很多人看到一堆英文就慌,其实提示里藏着两个关键:错在哪、为什么错。举个生活化的例子:你订了“草莓味奶茶”,结果商家送来“原味可乐”,问题就是“订单要求草莓味,给了原味”。TypeScript 的错误提示也一样,比如 Type 'number' is not assignable to type 'string',翻译过来就是“你给的是数字,需要的是字符串”——刚好对应“要求和实际不符”。

再看个更具体的场景:你写了一个接收名字的函数 function sayHello(name: string) { console.log('你好,' + name); },调用时写了 sayHello(123),错误提示会说“类型数字不能赋值给类型字符串”,这就像你约朋友见面,说要带“苹果”,结果带了“梨”,不是“苹果”就不符合要求。

用“编译工具”放大错误细节

很多人用 VS Code 写 TS,它自带编译器,错误会实时标出来。如果用命令行编译(就是敲 tsc 命令),错误会在终端显示更全的信息,甚至告诉你错误的文件和行号,比如 src/index.ts:5:3 - error TS2322: Type 'number' is not assignable to type 'string',意思是“在 src 文件夹的 index.ts 文件第5行第3个字符,错误编号2322:数字不能赋值给字符串”。

如果错误太多,不用挨个啃——先看第一个错误,很多时候后面的错误都是它连锁引发的。比如你写错了变量类型,后面用到这个变量的地方都会报错,改完第一个,后面的可能自动消失,就像一颗螺丝松了,旁边的零件都会晃,拧紧螺丝就稳了。

避坑:别把“警告”当“错误”

TypeScript 还有黄色的“警告”,和红色的“错误”不一样。错误是代码跑不起来的硬问题,警告是可以凑活用但不规范的小问题,比如某个变量定义了没用到,不会影响运行,但最好改掉。就像你出门穿了干净但没熨平的衣服,虽然能出门,但看着不整齐,没必要当成“不能出门”的问题。

最后总结一下:看 TypeScript 编译错误,不用怕,先找红标的位置,再读提示里的“要求”和“实际”,改完第一个错误再看其他。多试几次,就会发现那些红色提示其实都是贴心的“纠错指南”,帮你少写很多bug。

上一篇 Java Log4j 怎么用