现在每个前端项目都要上这个,感觉语法丑陋,读起来并没有很优雅,还有学习门槛,真的有必要吗?
1
EPr2hh6LADQWqRVH 2022-01-21 16:17:15 +08:00 4
不是。内裤也不是必须的,还要花钱买,完全没有必要。
|
2
66beta 2022-01-21 16:18:42 +08:00
共存期确实比较烦,但是有了提示和约束,对开发体验和代码质量有很大帮助。
|
3
lneoi 2022-01-21 16:20:39 +08:00
增加的噪音太多了 可以不全部上, 必要的项目和库上一下
|
4
iikebug 2022-01-21 16:20:55 +08:00
单个人的项目没必要,但是二个人及以上,这东西就很用必要了,看一下类型就能知道很多东西。
|
5
murmur 2022-01-21 16:24:58 +08:00
对于简单项目,赶紧堆工作量出成果要紧,ts 的学习成本也是成本
|
6
grewer 2022-01-21 16:26:18 +08:00
interface+注释, 看到这个组件就知道哪些是必须的, 哪些是可选的, 哪些是函数存在什么问题等等, 用起来舒适
|
7
luob 2022-01-21 16:27:09 +08:00
你完全可以写 JavaScript 然后命名为 .ts ,并没有人不让你写 AnyScript
|
8
SxqSachin 2022-01-21 16:28:50 +08:00
不必须,但是有了类型的话团队协作会更好一些,同时代码提示也更友好。
|
9
cmdOptionKana 2022-01-21 16:29:19 +08:00
单人小项目也建议用 ts ,重构的时候方便很多,代码提示也更精准,而且最大的好处是“渐进式”,你可以先使用其中一小部分看得顺眼的特性,后续再慢慢熟悉。
|
10
yaphets666 2022-01-21 16:31:07 +08:00
这个东西就是增加开发成本,略微提高代码质量(也有相当大可能性降低代码质量).你能接受这种交换,那就合适.否则不合适.
|
11
micean 2022-01-21 16:31:19 +08:00
注解和高级类型对于我帮助很大,看了一天就上手了,相信 ts 不是一个问题
|
12
gouflv 2022-01-21 16:36:37 +08:00 via iPhone
没人逼你用吧?
|
13
murmur 2022-01-21 16:38:59 +08:00 7
你们不要高估那种中低级水平的项目,需求不定,设计不定,接口不定,你满心欢喜的拿到接口才发现,除了 http 协议是对的,其余的一塌糊涂
这个时候你写各种定义就是浪费生命 |
14
otakustay 2022-01-21 16:44:42 +08:00
我现在无论项目大小,写 TS 比写 JS 还快……
|
15
zhaol 2022-01-21 16:46:08 +08:00
没有代码提示写的下去?
|
16
enchilada2020 2022-01-21 16:46:48 +08:00 via Android
@murmur 多么痛的领悟!如果需求瞎改 又狂赶工期 老代码不及时更新维护 开发前不能详细调查仔细设计 那过期的定义就是灾难 误导性极强
|
17
sweetcola 2022-01-21 16:48:55 +08:00
以前的我:TS 这东西谁会用啊,太恶心了,100 行代码里要写 50 行定义,太啰嗦了。
现在的我:真香 |
18
enchilada2020 2022-01-21 16:52:36 +08:00 via Android 1
JS 太随便了 想写好对使用者的要求很高 用 TS 至少可以保证一定程度的规范性 减少低级错误 还可以把类型信息显式体现在代码中
个人觉得 TS 那部分的学习成本 本来是在学 JS 时就必须要下的功夫 欠的债早晚要 而且 TS 的类型系统能玩出花来… |
19
enchilada2020 2022-01-21 16:53:18 +08:00 via Android
@enchilada2020 欠的债早晚要还
|
20
3dwelcome 2022-01-21 16:58:14 +08:00
很多人用 TS ,就是为了用智能提示推导吧。
然而我写代码,基本上都是全关提示的,IDE 里一片寂静。 |
22
wukongkong 2022-01-21 17:17:57 +08:00 1
@enchilada2020 接口变化首先修改定义,需要修改的地方就会自己跳出来了。。。多方便
|
23
3dwelcome 2022-01-21 17:21:14 +08:00
|
24
qzhai 2022-01-21 17:28:12 +08:00
我觉得还是看 这个项目经手的人有多少,超过 2 个用没问题的。。但前提是要遵守规范,如果都是 any 走天下 意义不大
|
25
alsotang 2022-01-21 17:47:32 +08:00
不用的话,不敢重构。ts 能在编译期暴露 js 在运行时才会暴露的错误。
|
26
yuuko 2022-01-21 17:56:31 +08:00
逃不过真香定律
|
27
DrakeXiang 2022-01-21 18:37:05 +08:00
这东西对个人来说就是体验的问题,ts 的类型校验能防止 bug 和 typo ,智能提示对记不住变量或者方法名的我简直无法离开,重构或者 debug 的时候 ts 的项目找引用更容易,比搜索好用得多,还能一键重命名变量方法名。最近几年工作的项目都是 ts ,偶尔用 js 写个 demo ,连变量重名了都不报,typo 也不报。等你习惯了 ts 带来的好处,脱离之后就会感到不适,不是说不能写,但写起来就难受
|
28
zhangshine 2022-01-21 18:44:39 +08:00
用了都说好
|
29
otakustay 2022-01-21 19:08:40 +08:00
@murmur #13 这种时候写定义才是节约生命,接口改了直接改完最外层的类型,tsc 一路改报错,改完报错放心提代码睡大觉
|
31
yyfearth 2022-01-22 05:36:56 +08:00
小项目 个人项目完全没必要
但是大项目 需要多人合作的项目 有 Type 会明显降低 bug 几率和沟通文档的成本 |
32
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 ,如何保证该改的地方都改了 ? 就本人实践而言,收益远大于成本。 |
33
jones2000 2022-01-22 18:11:40 +08:00
不用 typescript ,js 本来就是开放式的编程,天马行空, 想怎么写就怎么写, 没有强制变量类型。 记事本+chrome F12 就可以搞完的事。最麻烦的就是编译, 搞的跟 c++,java 一样, 图个省事才用 js 写, 搞的太麻烦了。
|
34
bzw875 2022-01-22 22:33:52 +08:00
不是必须,我在写的项目因为某些条件使用不了 typescript 。写是还可以写,就是感觉没有 typescript 比较难受,看不了参数类型,数据类型,引入库的参数类型。很不方便,效率下降得厉害
|
35
msg7086 2022-01-23 02:55:45 +08:00 via Android
我喜欢写 coffee 。再加上 ts 双击会用视频播放器打开……
|
36
enchilada2020 2022-01-23 12:30:32 +08:00 via Android
@msg7086 哈哈哈哈笑死
|