为什么你们要选择 TypeScript?

2021-05-06 14:45:03 +08:00
 BoringTu
我只是不明白为啥这么多人会选择 ts ?理由是啥啊? ts 出来的那年我就关注了,但所有的理由在我看来都是莫名其妙的观点,但这些年怎么还用的人越来越多了?
咱就说脑回路很神奇的把本身弱类型为优势的 JavaScript,套了一层强类型的壳的这步操作我就看不懂了,这是图啥呢?这样代码写着不难受么?那你直接用 Java 写然后编译成 JavaScript 不好么?
网上有很多人说,用 ts 可以减少因类型导致的错误。大哥,你是个程序员,你连自己写的代码是怎么跑的都不知道的话,转行好吗?我十一年的程序员了,js 写了 11 年,js 的其他高级语言我也都研究过,包括 ts,但现在只用 es6 和 coffee2,我怎么就一次都没碰到过我连变量背后的值类型导致的 bug 呢?
24516 次点击
所在节点    JavaScript
303 条回复
FreeEx
2021-05-07 13:45:55 +08:00
前端的深度低,3 年,5 年,10 年工作内容都差不多,那如何体现出来自己的水平呢,既然深度不行那就横向扩展呗,只有写写 ts 才能维持的了生活这样子。
jeffwcx
2021-05-07 13:56:25 +08:00
@FreeEx 前端深度低吗?只是重客户端的应用少,office365,figma,notion 都是重前端的
nexo
2021-05-07 14:19:47 +08:00
@wunonglin 我知道 但是层主说 ts 可以暴露这个问题 没懂怎么暴露 不一样也是 出了 bug 才知道吗
BoringTu
2021-05-07 14:20:31 +08:00
@d873139022 这个没啥推荐不推荐的,这个得看你想转的信念有多坚定,如果不坚定的话就建议不要转
前端是程序员的一个分支,跟后端一样,虽然前端的门槛是真的低,说句不好听的,现在是人是狗都好意思说自己是前端工程师,结果一面试问啥啥不会,就觉得自己会个 vue 会个 elementUI 就敢自称前端工程师了~ 我们这帖子里估计也有一部分人在此行列,尤其是那些叫的欢的。emmmm,话题歪了,咱继续说转行的事儿
其实测试的水也是蛮深的,而且薪资水平也不低,为啥打算转行嘞?
如果要转前端的话,你需要做好的准备是,关于程序员的基础你需要很长一段时间来学习(因为是转行从零开始,以前没有接触过程序员相关知识,所以这里我用的是“很长一段时间”
比如软件工程思维啦,比如数据结构和常用算法啦,比如 js 的各种基础和常识啦,哦当然也还有 HTML 和 css 等等。就像前面说的,不是说会用个 vue 之类的框架就能叫做前端工程师的。
所以基于以上,你结合自身考虑一下呗~
james122333
2021-05-07 14:25:21 +08:00
@BoringTu
必须得说实话搂 语言特性与可维护性本来就没有必然关联 惯不惯而已 都有长处和短处
有政治因素或利益考量照样难以维护
也觉得 oop 有点走火入魔 而弱类型能实现强类型本身就归功于弱类型特性 弱类型加上"简单"数据结构个人觉得还是可以的
BoringTu
2021-05-07 14:25:28 +08:00
@abcbuzhiming 哟西,说的好~
BoringTu
2021-05-07 14:27:38 +08:00
@wwwap 哈哈哈哈,我也是服了,你看那些叫得欢的人,我都怀疑是不是只会个 ts
前面我还试着回几个,后面实在是懒得回,不值得浪费这个时间。。不过网络嘛,啥人都有~
wunonglin
2021-05-07 14:28:10 +08:00
@nexo #223 你换成任意一种后端强类型语言,不做错误处理的话一样会出现这样的错误。这和 ts 没关系,再说 ts 只是静态类型,不是强类型,而且 ts 只做于开发期间使用,而不是生产时。如果你写过任意一种强类型的后端语言你自身应该能知道类型带来的好处,如果没写过那你应该是尝试接触下后端,或者当我没说
penll
2021-05-07 14:33:46 +08:00
js 的 any 特性已经给许多人带来灾难性不可维护的后果。
ts 强类型的好处,楼上都说很清楚了。约束、规范带来各种便捷,可维护性、写代码时的提示。
还有,限制一个对象传递过程被多个人一起开发时,挂上各种不可预知的子字段造成内存溢出
ychost
2021-05-07 14:34:38 +08:00
ts 写 angular 很舒服,写 vue 或者 node 就没 js 那么爽了
nexo
2021-05-07 14:35:45 +08:00
@wunonglin 我写过 c++、java 、 也用过 ts 我问的是这个人的回复是怎么运行前暴露后端问题的 怎么做到的 你看了他的描述吗...
lbp0200
2021-05-07 14:40:10 +08:00
我去年准备自学 coffeescript,最后被 vue 、recact 、angularjs 这些框架很难与 coffee 兼容劝退,大佬这些问题怎么解决的呢?
james122333
2021-05-07 14:40:54 +08:00
@wunonglin
类型有带来好处也有坏处 坏处大于好处的时候就是不可维护性 弱类型同理 说到底还是看人如何使用
BoringTu
2021-05-07 14:49:04 +08:00
@FreeEx #221 是谁跟你说前端深度低的。。前端门槛低倒是真的,深度咋就低了?
数据结构和算法,一样是前端工程师的基础,尾调用尾递归你要会,除非你一辈子不会写复杂逻辑(根本不可能吧,比如后台系统,你连菜单树都不渲染的么。。)比如各种棋牌游戏,你不得重新把初高中数学捡起来?什么斐波那契数列,什么阶乘,什么交集并集,什么排列组合都是要的。比如动画类游戏,你还得折腾 canvas,甚至也许需要 cocos2d 、ThreeJS 。虽然这些是广度,但每个广度背后都是需要基础这个深度支撑的,你不会以为没啥基础的人随便找个框架看着文档就能撸代码吧。。
BoringTu
2021-05-07 14:51:58 +08:00
@lbp0200 #232 coffee 跟 vue 可以完美结合啊,没啥问题啊。。我用 vue 跟 coffee1 一直用到现在的 coffee2,不能再舒服~
而且我看上面有人说,如果用 ts 的话需要上下游环境都是支持 ts 的(未验证),但 coffee 不会,可以跟 js 完美融合在一起。比如我现在的这个项目,我和几个同事用 coffee 写,另外有同事因为赶进度没时间学 coffee,那就用 js 写,配合没有任何问题
Austaras
2021-05-07 15:00:12 +08:00
> 尾调用尾递归

笑死,报菜名都报不利索
bsg1992
2021-05-07 15:03:05 +08:00
楼主的思维方式和性格 和当年 20 岁一样,有一种莫名的优越。太局限于技术上的思考。
wunonglin
2021-05-07 15:17:28 +08:00
@nexo #231 他那是压根不知道 ts 能拿来干嘛
wunonglin
2021-05-07 15:19:36 +08:00
@james122333 #233 原本 js 的定义就是个脚本语言而已。只是发展到现在慢慢变得大型化,工程化,弱类型已经不能满足发展需求了,所以 ts 诞生了。十几年前哪个鬼知道 js 能有今天的地位
BoringTu
2021-05-07 15:20:34 +08:00
@Austaras 说话呢,就说全了,说出个论点就要有论据支撑,否则只能证明你跟那些人一样是个 sd~


@bsg1992 优越谈不上,自信是有的,你什么时候能一样做到在每家公司里都是 bug 率最低,你也可以
但你所谓的局限,我并不敢苟同,我自己啥样我还是知道的。我这篇帖子抛出来就是问 ts 火的原因,然后你也看到了,还是有相当一部分人跟我一样的看法的,那你是不是顺便也挨个 @一下来指导一下我们?

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

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

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

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

© 2021 V2EX