mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
366 字
1 分钟
TypeScript:给代码穿上防弹衣 (虽然很重)
2026-01-07

TypeScript:心态崩了#

毁灭吧,赶紧的。累了。

无尽的报错#

TypeScript 说是给代码穿上防弹衣,防止低级错误。但实际上,它更像是给我的手戴上了镣铐。

Type 'string | null' is not assignable to type 'string'. Property 'xyz' does not exist on type 'ABC'.

我知道!我知道它是 null!我明明加了判断,但一进异步回调或经过一次可变引用,类型收窄又失效了。直接写 as string! 虽然能让红线消失,却也可能把真正的空值问题一起藏起来。

尤其是在 Vue 组件的 Props 定义里,结合 defineProps 和泛型,写起来那叫一个酸爽。为了解决一个类型报错,我可能要写几十行的 interface 定义。这到底是写业务逻辑,还是在做类型体操?

为什么这么难?#

这类报错最容易让我彻底破防。后来我给自己定了个顺序:先把外部输入收窄成可靠类型,再处理业务逻辑;能改类型定义就不强制断言,确实不可能为空时才用非空断言。红线没有立刻少很多,但运行时的惊喜少了。

前端不就是画画界面调调接口吗?为什么要搞这么复杂?Webpack 还没整明白,Vite 又来了;Vue 3 又变了。学不动了,真的学不动了。

TS

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

TypeScript:给代码穿上防弹衣 (虽然很重)
https://blog.luozili.work/posts/vue-learning-9/
作者
llbzow
发布于
2026-01-07
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录

💬
🎀