楼主接触 js 十多年了。 之前也写过 flash 的 actionscript3 。目前还没有用过 typescript,感觉 typescript 主要是加了一个类型系统。
当时在真实工程环境里头不会麻烦吗,感觉代码阅读的难度和写起来都更麻烦了。
不知道实际操作过的人会觉得好用吗,不会影响开发效率吗。
1
hxgdzyuyi OP 当时 -> 但是
|
2
wjj5728 2020-03-27 09:50:56 +08:00
好用? -> 真香
|
3
yaphets666 2020-03-27 09:51:00 +08:00
我觉得看团队 小团队没必要 但是大团队也没必要 只是大团队才能从中获得到一些好处
|
4
will0404 2020-03-27 09:54:46 +08:00 via iPhone 7
debug 的时候,你是怎么检查一个对象的?想要看看它里面的方法,属性,是不是只能 console 出来?或者打断点?无论怎么样都要运行时浏览器里看是不是?有了类型,在编辑器里就知道它是个什么玩意,这就是类型带来的最本质的快乐,你说它香不香。
|
5
vimsucks 2020-03-27 09:55:27 +08:00 1
代码补全很香啊,再也不怕打错字了。。。
|
6
InkStone 2020-03-27 09:55:29 +08:00
加上类型系统明明是读起来和写起来都更简单了。
反正调试起来有代码映射,编译运行基本也是透明的。 |
7
whitehack 2020-03-27 09:55:59 +08:00
真好用!再也回不去 js 了
|
8
sxd 2020-03-27 10:03:38 +08:00
你都写过 as3, ts 还用学么?
|
9
llb123 2020-03-27 10:04:07 +08:00
读起来简单了+1
|
10
optional 2020-03-27 10:06:18 +08:00
真香系列
|
11
blodside 2020-03-27 10:12:35 +08:00 via Android
适度用 any 的话就不麻烦很爽,如果是强迫症都要整上类型就不爽了
|
13
TomeWong 2020-03-27 10:23:52 +08:00
最近的一个项目中使用的 Typescript,加了很多类型题型,还是很有帮助的
|
14
sherryqueen 2020-03-27 10:24:07 +08:00
自动提示很爽哇. 维护起来也方便
|
15
backrunner 2020-03-27 10:26:54 +08:00
写后端必备吧,前端不见得一定爽
|
16
tolking 2020-03-27 10:28:43 +08:00
自从用了 typescript 感觉少写了好多 bug
|
17
hxgdzyuyi OP @backrunner 这么一总结有道理。
|
18
across 2020-03-27 10:34:32 +08:00
麻烦?
习惯 C++/C#,写 js 的时候,没有类型总觉得心理没底,感觉流程没有保障,像 C#那样,隐性类型转换都报 error 我才放心··· |
19
lewinlan 2020-03-27 10:35:08 +08:00 via Android 2
恕我偏激。不用 ts 的都应该去枪毙。
这段时间看别人写的 vue 代码简直想吐。 神奇的 js 语法 xjb 乱写你是爽了,别人痛苦了。 |
20
rockcat 2020-03-27 10:40:34 +08:00
语言本身没毛病,就看生态了。微软一贯的风格。
|
22
Woodywuuu 2020-03-27 10:41:37 +08:00
好用是好用,但是你架不住喜欢 anyscript 的人
|
23
aabbcc112233 2020-03-27 10:41:54 +08:00 via Android
接触 js 十多年了,没接触过静态类型语言吗?
|
24
otakustay 2020-03-27 10:51:45 +08:00
不好用,但实用
|
25
hxgdzyuyi OP @aabbcc112233 说这话没意义,就像在说设计 js 语言的人没接触过静态类型语言一样。
|
27
TangMonk 2020-03-27 11:03:40 +08:00 2
用过 C#, Java 之类的语言就不会这么说了
|
29
aabbcc112233 2020-03-27 11:11:38 +08:00 via Android
@TangMonk 显然没有深刻体验过。
|
30
ZZITE 2020-03-27 11:28:28 +08:00
一开始写起来麻烦是肯定的,影响开发效率也是会的。但是读起来我觉得是很香的,尤其在团队协作时看别人的代码要比看 js 容易了。
|
32
icyalala 2020-03-27 11:50:42 +08:00
我之前一直在写强类型语言的代码,写 JS 时每次都提心吊胆
TS 让我重拾信心 |
34
geshansuiyue 2020-03-27 11:55:26 +08:00
所以有人说过,新手用 ts 就是加个类型 ,其实还有挺多好用的东西比如装饰器之类的。
|
35
toma77 2020-03-27 12:00:23 +08:00
反正我 React 和 Node 统一 TS
|
36
Soulike 2020-03-27 12:02:01 +08:00
TS 能把错误拦截在编译阶段而不是运行阶段,这就是最大的意义
|
37
g00001 2020-03-27 12:03:04 +08:00
typescript 即保留了动态语言轻便灵活的优势,又解决了动态语言散漫难以控制的缺陷,
在类型化上的小小付出并不算什么( 玩进去里面很多东西会非常有趣 )。 |
39
raymanr 2020-03-27 12:13:27 +08:00
居然对 ts 都是一致的好评? 可能是我没做过啥大项目吧, C# 出来玩了几年, 已经完全习惯动态语言了, 类型什么不存在的...
|
40
fengbjhqs 2020-03-27 12:15:30 +08:00
如果没有 vscode 的推,也不可能也不会香的这么快,
写起来的确麻烦, 但维护真香,特别是维护别人的代码,js 的引用特性,有时候真的不好猜这个对象到底有啥子数据, 当然如果你只用 ts 的 any,当我没说 |
41
yngzij 2020-03-27 12:16:07 +08:00
===0
==0 ==='0' =='0' |
43
SilentDepth 2020-03-27 12:32:48 +08:00
个人感受:在开发基于特定数据结构的项目时真希望写的是 TS,一来代码提示更高效,二来光靠变量名辨别预期的数据类型是不够的,此时加上类型标注或提示会好很多。另外,类型关联完善的情况下,重构也痛快得多。
阅读难度和编写麻烦度都跟类型完善度有关。类型完善了,读起来和写起来跟 JS 没大差别(除了必要的类型声明和转换,大部分类型都被隐式推到了,编写时不必关心),而且 TS 引入的一些新特性反而有助于提高可读性。当然如果类型不完善就另说了。 我觉得 TS 目前的问题是相关工具生态还不够成熟,准入门槛还不够低。过去一年 TS 在这方面有明显的进步,但还没达到可以让 JS 社区轻易接受的程度。(虽然也许不是 TS 的问题。) |
44
jin5354 2020-03-27 12:56:58 +08:00
不好用,你要是真仔细写 ts 就知道,ts 现在的缺陷还太多,智能程度也不够,太多地方推导不出来要自己写 hack 。
可读性也是一个问题,有的函数声明加上类型声明可能超过一行,又长又复杂,看的人眼都瞎了。 但是必须用,因为类型检查太重要了。 |
45
Mark24 2020-03-27 12:59:56 +08:00
不好用
很多人是为了用而用 |
46
KuroNekoFan 2020-03-27 13:01:42 +08:00
用了一段时间
最大的问题是 tsserver 经常出问题 另外就是结合 react-redux 的范式模板会使得改动变得异常繁琐 |
47
yafoo 2020-03-27 13:08:17 +08:00 via Android 12
那么多年一直用记事本写代码的人,表示坚决不用 ts 。
本来动态可变类型是 js 和 php 的特性和优点,就因为现在部分.net java 程序员参与了进来,硬生生给改成强类型语言了,严重破坏 js 生态系统。 记得前几年有次跟.net 后端对接接口,有个字符串需要拼接处理一下,弄了半天他愣是搞不定,因为他那数据结构定死了,就那样,不能动。 还有就是编译,本人坚决反对编译,现在每次修改程序,改个字符都要重新编译。 喜欢 ts 的,建议直接去写 java 或者 c 程序。 喜欢 js 的请点赞,喜欢 ts 的请忽略本条评论,哈哈! |
48
AmiKara 2020-03-27 13:33:08 +08:00
ts 有 java 的味道,感觉写起来逻辑比 js 更加清晰,但是代码量会比 js 大很多,新人玩个人项目的时候建议用 js,不然你用 ts 只会用成 anyscript
|
49
yaphets666 2020-03-27 13:42:11 +08:00
@lewinlan 确实偏激了兄弟 你看 TS 推广不开你就明白怎么回事了 VUE 是能写出可读性最高代码的前端框架了
|
50
Yiki 2020-03-27 15:29:39 +08:00
……学过 java 对 TS 很容易上手就是了
纯 JS 不觉得很烦躁吗…… |
51
JerryCha 2020-03-27 15:31:12 +08:00
没有类型,心里总有根弦绷着,担心类型不对出错
|
52
mitu9527 2020-03-27 15:32:33 +08:00
以前有一门编程语言叫 javascript,后来微软借 ie 参与竞争搞了个山寨版的“js”,从此前端工程师的痛苦开始了,也让 web 前端的发展停滞了将近十年。chrome 好不容易挽回了局面,微软又杀回来了,虽然这次是在更高层面上切入,但混乱又开始了。试想一下,如果真的越来越多的前端开始依赖强类型,那么 js 势必会引入一套自己的方案,届时会会更混乱。历史的轮回从来没听过,哎。
|
53
mitu9527 2020-03-27 15:36:58 +08:00
个人预计,js 目前这个小修小补的阶段就快结束了,很快就会像当年 ecmascript 4 一样引入强类型了,届时更混乱。再加上 web 汇编的引入,前端又会乱成一锅粥。
|
54
hantsy 2020-03-27 15:52:22 +08:00
用于后端开发人员,TS 很亲切,ES 5 毫无章法,要人命,ES 6 勉强能用。
|
55
zpm683 2020-03-27 15:57:41 +08:00
香!
|
56
galikeoy 2020-03-27 16:46:09 +08:00
ts ?啥子东西哦,这么麻烦。
|
58
ansenJ 2020-03-27 16:55:20 +08:00
小公司用 TS 的话 一个好的产品经理是你的门槛....
|
59
stabc 2020-03-27 17:01:38 +08:00
个人项目。尝试过用 TS,最后放弃了,主要原因是灵活性不够。而且类型检查只约束程序员,不约束用户输入,处理用户输入时需要额外再写一套检查。
团队项目的话我倒是推荐 TS 的。 |
60
huiyifyj 2020-03-27 17:09:45 +08:00
确实是真香。但是...当团队要求禁止使用 any 类型,就会有点不太香。
|
61
hurrytospring 2020-03-27 17:10:29 +08:00
香,不想多说。
|
62
marcong95 2020-03-27 17:18:35 +08:00
个人而言几乎没用过静态类型语言做大项目,公司之前某个项目试了一下 TS,一开始我还很坚持写类型定义啥的,然而做着做着似乎就变成了 anyscript 了。。
毕竟 npm install 是 JS 的包,就算有.d.ts 也难以避免有些地方的返回值是个 any,然后又变回 anyscript 了 |
63
slert 2020-03-27 18:05:04 +08:00
我觉得不用写类型很爽。很多项目并不那么需要 ts,为了 ts 而 ts 的话,也许引入的麻烦比解决的问题多。
|
64
magicdawn 2020-03-27 18:15:20 +08:00
不用 TS, 当你的项目因为是 js 带来很多 bug 的时候, 说明你需要 TS 了
|
65
yiqidaoshan 2020-03-27 19:00:49 +08:00 1
好处是防止有些人自由飞翔,坏处是你不能自由飞翔了
|
66
rbe 2020-03-27 19:37:32 +08:00
@stabc #59 约束程序员就是 ts 最大的意义呀,任何语言写接口都需要自己处理用户输入。写一个 function 给别人用,别人在敲下方法名时就知道参数和返回值的 "shape", 乱传会编译不过这非常好。
|
67
Tokin 2020-03-27 19:55:29 +08:00
初次写因为有些时候要自己定义类型挺麻烦的,但是事后隔了一段时间再读代码,感觉真的很舒服。
|
68
wi 2020-03-27 20:50:56 +08:00 4
看了评论,弱鸡太多,不写 Ts,去写 Js,活该你写 Js 。Ts 是挡不住的,Js 纵容那些白痴写代码,到后来还是用 Ts 重写,你可以现在不学,但是你也挡不住 Ts,门槛就是要提高。
|
69
OHyn 2020-03-27 20:52:37 +08:00
提高代码质量的下限。。。
|
70
yafoo 2020-03-27 21:13:36 +08:00 via Android 2
|
71
CuVee 2020-03-27 21:41:18 +08:00
不好用,写 node 可以,写前端除了代码可读性提升了,其他方面没卵用
|
72
justin2018 2020-03-27 21:45:32 +08:00
代码补全 真香~~
|
73
civet 2020-03-28 00:11:00 +08:00 via iPhone 1
说白了 TS 其实就是微软想将 JS 进行 C#化,越看这个语言的版本更新就越明显。写 JS 用上了 ES6,习惯了函数式编程之后又是另一番体验,TS 未必要用上。目前 TS 的特性已经比上几版本复杂太多了,不断复制 C#特性最终会导致过度设计
|
74
xcstream 2020-03-28 00:18:02 +08:00
用 js 写也不会遇到什么难以解决的 bug
|
75
tourist2018 2020-03-28 08:27:57 +08:00
我觉得 ts 看起来已经比 js 舒服啊 有类型系统不管自己写代码还是 debug 都舒服多了
|
76
tikazyq 2020-03-28 09:12:45 +08:00
ts 不管是可读性还是可维护性都远超原生 js
|
77
gaojiren 2020-03-28 11:35:08 +08:00
ts 真香,用了根本回不去,写起来和 C#一样行云流水
|
78
noobma 2020-03-28 13:34:54 +08:00
肯定推荐 ts 啊,比如有一个对象,后来你需要增加字段、删除字段、修改字段类型,用 js 的话,要自己手动一个个的找到使用的地方去做对应的修改;用 ts 的话,在 interface 那里改一下,等着编译报错,到对应的报错的文件里面,结合 webstorm 的 fn + f2 跳转到下一个错误去修改,直到编译不报错,这样产生 bug 的几率会更小一些吧😂
|
79
noobma 2020-03-28 13:38:06 +08:00
我以前也是觉得用啥 ts,我用 js 还不是一样搞得定,徒增负担罢了。用了 ts 后,再去接手别人的 js 项目,真的会产生抵触心理😂
|
80
codelegant 2020-03-28 13:53:35 +08:00 via iPhone
@noobma 你这个应该用 WebStorm 的重构(refactor)功能,自动搜索所有引用并改名。
|
81
noobma 2020-03-28 15:21:26 +08:00
@codelegant 改名和我说的是一回事吗?
|
82
wi 2020-03-28 22:05:54 +08:00
说 Ts 像 Java 、C# 的感觉是不能明白:为什么 Ts 是 Js 的超集,知道 keyof 怎么用吗,知道联合类型和交叉类型吗。Ts 的类型系统不是 Java 、C# 能比的,Ts 可以说很强大,可以描述 Js 的很多东西。
|
83
hc181533609 2020-03-29 06:08:13 +08:00 via Android 3
看看评论,很感慨,只想说点非技术性评论,中间有一群人,都是个代码狗而已,哪来的这么多优越感呢,一上来鄙视这个鄙视那个,都是穷逼一个屌丝居多,写代码还写出优越感,足见劣根性。哪有什么喜欢呢,都是为了利益,有经济有享受鄙视的快感,总之都是蠢,自己团架构不行,或者自己技术菜,怪到语言的头上,存在即合理,一门语言将近三十年的历程,还没消失在历史长河中,就足见强大性,也没见那些大神鄙视这个鄙视那个的,说的难听点,都是些 gb 在鄙视人,做人要学会谦逊心存敬畏,都是代码狗居多,穷逼居多,也要比比?合着就你能了?真的是劣根难除?有人觉得看着刺眼,可以举报。
|
84
hxgdzyuyi OP DHH 在自己的项目里头去掉了 TypesScript
|