TypeScript 真的是必须的吗?

2022-01-21 16:15:49 +08:00
 zzlatan

现在每个前端项目都要上这个,感觉语法丑陋,读起来并没有很优雅,还有学习门槛,真的有必要吗?

4970 次点击
所在节点    问与答
37 条回复
sphawkcn
2022-01-21 17:13:24 +08:00
@3dwelcome #20 智能提示和推导可以少打很多很多字,为啥不用?
wukongkong
2022-01-21 17:17:57 +08:00
@enchilada2020 接口变化首先修改定义,需要修改的地方就会自己跳出来了。。。多方便
3dwelcome
2022-01-21 17:21:14 +08:00
@sphawkcn 以前写其他语言,为了加深记忆,多打几个英文字母,留下来的习惯。

早期差错都是依赖编译器,如果是写 JS/TS ,还是有必要打开的。
qzhai
2022-01-21 17:28:12 +08:00
我觉得还是看 这个项目经手的人有多少,超过 2 个用没问题的。。但前提是要遵守规范,如果都是 any 走天下 意义不大
alsotang
2022-01-21 17:47:32 +08:00
不用的话,不敢重构。ts 能在编译期暴露 js 在运行时才会暴露的错误。
yuuko
2022-01-21 17:56:31 +08:00
逃不过真香定律
DrakeXiang
2022-01-21 18:37:05 +08:00
这东西对个人来说就是体验的问题,ts 的类型校验能防止 bug 和 typo ,智能提示对记不住变量或者方法名的我简直无法离开,重构或者 debug 的时候 ts 的项目找引用更容易,比搜索好用得多,还能一键重命名变量方法名。最近几年工作的项目都是 ts ,偶尔用 js 写个 demo ,连变量重名了都不报,typo 也不报。等你习惯了 ts 带来的好处,脱离之后就会感到不适,不是说不能写,但写起来就难受
zhangshine
2022-01-21 18:44:39 +08:00
用了都说好
otakustay
2022-01-21 19:08:40 +08:00
@murmur #13 这种时候写定义才是节约生命,接口改了直接改完最外层的类型,tsc 一路改报错,改完报错放心提代码睡大觉
cgb1021
2022-01-21 20:48:53 +08:00
@murmur 老大在哪个厂
yyfearth
2022-01-22 05:36:56 +08:00
小项目 个人项目完全没必要
但是大项目 需要多人合作的项目 有 Type 会明显降低 bug 几率和沟通文档的成本
srlp
2022-01-22 12:14:36 +08:00
typescript 的成本无非这几类:

1. 学习成本
都 2022 年了,前端工作者 / nodejs 工作者几乎必然需要学习这个。
个人项目练练手,正好为大型项目做心理准备。有任意“带类型编程语言( c++、java 、...)”经验的人,应该都可以较快上手。

2. 编译成本
小型项目一个 tsc 走天下,没看出有什么编译成本。
大型项目上 esbuild ,rollup ,webpack ,也不差多一道 typescript 编译的工序。

3. 编写成本
增加了很多 type ,interface 定义

4. 选择第三方库时候需要找有 d.ts 支持。
现在很多都有自带或者第三方类型支持了,问题不大吧。

收益:

1. 运行时错误提前到编译期暴露,踩过坑的都说真香
2. 智能提示。别人的接口,即使没有注释,看类型定义也能连猜带蒙略知一二。
3. 连带的,重构之类的多了一重保障,楼上一位哥们说接口类型变来变去,本人认为更需要带类型了,每次类型一变,编辑器相关地方全都标红,改完问题就心里有底。没有类型的话,只能人肉追溯代码调用链,或者 ctrl+F ,如何保证该改的地方都改了 ?

就本人实践而言,收益远大于成本。
jones2000
2022-01-22 18:11:40 +08:00
不用 typescript ,js 本来就是开放式的编程,天马行空, 想怎么写就怎么写, 没有强制变量类型。 记事本+chrome F12 就可以搞完的事。最麻烦的就是编译, 搞的跟 c++,java 一样, 图个省事才用 js 写, 搞的太麻烦了。
bzw875
2022-01-22 22:33:52 +08:00
不是必须,我在写的项目因为某些条件使用不了 typescript 。写是还可以写,就是感觉没有 typescript 比较难受,看不了参数类型,数据类型,引入库的参数类型。很不方便,效率下降得厉害
msg7086
2022-01-23 02:55:45 +08:00
我喜欢写 coffee 。再加上 ts 双击会用视频播放器打开……
enchilada2020
2022-01-23 12:30:32 +08:00
@msg7086 哈哈哈哈笑死
mikulch
2022-01-27 21:33:58 +08:00
@srlp 说实话,ts 的各种框架的源码真的非常难读。是真的非常难读,写得非常的复杂。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/829739

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX