前端同学,你到现在还没用 typescript 原因是什么?

2021-07-28 10:36:16 +08:00
 Imindzzz

我认为使用 ts 是只有好处没有坏处的。因为实在没办法的时候也是可以降级到原生 js 的写法的,但是熟悉 ts 后那真是太爽了。

如果你有什么问题可以说出来,看大伙能不能给你一个完美的解决方案。

大家心平气和不要吵架。

13483 次点击
所在节点    TypeScript
124 条回复
Imindzzz
2021-07-28 22:27:09 +08:00
@Leviathann 有时候是不好搞,用用 ts-ignore 也没啥不好的。
interface A{} interface B{} T exends A|B 这个没问题的吧?
Imindzzz
2021-07-28 22:33:56 +08:00
@powerN
1,什么时候用枚举,什么时候用联合类型。我只有一个场景用联合 https://imgtu.com/i/W7gcBF

2,枚举转 list 。
这个我不知道,不过按理说一个是类型,一个是数据,这确实没法转换吧
chenyu0532
2021-07-28 22:36:01 +08:00
就像我做小游戏的,一个人就能开发一个一个游戏,当然 js 写起来快了,没 ts 那么多啰嗦的语法。
如果和别人协作,js 需要提前定义一堆约束才能配合好。ts 就不用特意去定义一些约束
Imindzzz
2021-07-28 22:40:53 +08:00
@zxCoder 你的想法可能在更高层次了,我只是个前端,我无法反驳。至少我觉得 ts 是前端的最优解决方案了
Imindzzz
2021-07-28 22:44:27 +08:00
@fanym
@silencelixing
@leelz
@94qihang
各位都是说写着麻烦~~~ 不是我不信哈~ 我想问问各位使用 ts 多久了。。。
在我看来,写类型就是顺手的事情啊,能花个几分钟?
或者你们说说,写了什么类型花了多少时间。
Imindzzz
2021-07-28 22:49:31 +08:00
@musi 刚开始的时候我和你想法一样,我想推又怕同事抵触,后来我们组来了一个比我厉害的同事,把工具链搭好,大家用得舒舒服服的,0 基础也都慢慢入手了。你既然团队成员多,恰恰应该多努力推一下,磨刀不误砍柴工。

注释的提示毕竟没有约束嘛,毕竟不是代码。
PerFectTime
2021-07-28 22:50:58 +08:00
ts 到处写 any,烦人
Imindzzz
2021-07-28 22:51:48 +08:00
@silencelixing 讲道理,前端真没多少要学的,学 ts 也花不了多少。磨刀不误砍柴工的,试试嘛。
Imindzzz
2021-07-28 22:56:42 +08:00
@chenyu0532 什么游戏,能开源大伙看看不。我感觉游戏这种场景 各种分层 /数据传递 最需要 ts 了。
Imindzzz
2021-07-28 22:58:51 +08:00
@chenyu0532 不开源,写一个 demo 也行。
实在不行,描述一下需求也可以,如果简单,我空了用 ts 实现一个。

@PerFectTime 对新手要有耐心,多说几次就不会写 any 了,前端总共就没几个应用场景,慢慢熟练嘛。
libook
2021-07-29 00:00:16 +08:00
以前 TS 火起来是因为比 JS 早先实现了 ES6 的语法,JS 是等 ES6 正式发布了之后才开始逐渐支持的。

但现在 JS 已经追上 ECMA-262 的所有 proposal 了,所以私以为 TS 的优势没那么大。

唯一比较有优势的是类型声明,然后做编译检查,但这些都是靠工具来完成的,同样靠工具也可以写 JSDoc 、ESDoc 然后用基于 doc 的代码分析工具来检查,效果差不多,我用 JetBrains 家的 IDE,在写的时候自动补全、类型提示、波浪线都很好用,体验就跟 TS 一样。

或许从 C#转技术栈过来的会用着很舒服?都是微软家的东西,思路也会有所相似。

任何一个技术都有好处也有坏处,有其最适合的场景,也有其不适合的场景,所以什么话都不能说死,因为除了会引战以外,过了一段时间回来看自己写的东西会很尬。

JS 是极其灵活的语言,灵活的代价就是对开发者要求很高,没有语法约束来规避各种坑,在水平不足的时候就很容易摔倒,TS 的存在恰好是为了让 JS 没那么灵活,对于 JS 水平较高的人来说,TS 可能会影响发挥。

但你猜怎么着,前端从来都不缺水平低下的人,对于团队协作来说,猪队友是十分致命的存在,那么 TS 的价值就出来了,能提升代码质量的同时提升开发效率。相应的 Go 火起来也是因为这个。

所以做个人项目的话,我通常不会选择 TS,但团队合作最好是 TS 。
pecopeco
2021-07-29 00:05:06 +08:00
还没遇到过一个人拿不下来的前端项目,如果有可能会考虑 ts
Leviathann
2021-07-29 01:24:33 +08:00
@xd199153 这个是不行的,只能限定 T 的上界是 a|b
比如 type a = {a: 1}; type b = { b: 1 }
如果 <T extends a|b>
那 { a: 1, b: 1, c: 1 } 是一个合法的 T
nanxiaobei
2021-07-29 05:13:56 +08:00
@libook #71 觉得 TS 提示「很香」的,基本都是用 VS Code 的,但用 WebStorm 会觉得很奇怪 ... 这些提示不是很多本来就有吗,这有啥特别的
musi
2021-07-29 06:26:25 +08:00
@xd199153 #66 有一个推不动的原因是团队使用的是 Vue2,Vue 用 ts 还真不如不用。我个人在写一些底层库或者 SDK 的时候倒是会直接上 ts,对 OOP 的增强写起来很爽。所以我们团队是一直没推,但我个人是一直在学。
musi
2021-07-29 06:38:00 +08:00
其实我只是想强调 ts 并不是银弹,不是所有团队或者项目都时候上 ts 。理性看待就好。
anguiao
2021-07-29 07:42:09 +08:00
我觉得还蛮舒服的,除了开始写各种 interface 有点麻烦,后面用起来都挺爽。
虽然我才用不久,对各种类型体操还不熟悉,但是用来写业务代码还是够用了。如果是用来写库的话,估计还得更精进一点才行。
kensoz
2021-07-29 07:54:15 +08:00
学是肯定要学的,不学面试肯定挂
用的话看情况,领导不让用,团队不会,业务和历史包袱限制等等
如果是只有一个前端,还没有什么限制,那就看心情了
Imindzzz
2021-07-29 08:14:49 +08:00
@libook
@nanxiaobei
jsdoc 这个我比较好奇,能做到这种程度吗?怎么做?
https://imgtu.com/i/W45iQK

我知道 document.querySelector 这种都是因为有.ds
popil1987
2021-07-29 08:34:15 +08:00
我只是调用封装好的组件当然不需要 ts,但是如果这个组建你负责维护,注释里要写你的名字,过三个月你回来看看源码,接口你想看的,逻辑你是不想看的,ts 的好处就体现出来了。react,只要组件分的足够小,我看也没必要 ts

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

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

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

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

© 2021 V2EX