论未来是JS还是TS,可能很多人都不清晰,欢迎讨论👏

JS最大的优势就是灵活快速,有一套非常高效的追踪查看流程(开发者工具,丰富的开源组件),熟练掌握后开发很容易进入心流状态,十分畅快!

而一旦用上TS,这种畅快感就会被打断,且不说不熟练的情况,就算十分熟练,也要多写和多看些interface type,被琐碎的定义打散思路,丢失掉这门语言的优势.

如果你是熟手,你应该有自己的见解;如果你项目刚需,那也不必多想;其实最推荐的是大家通过自己的实践去体会,同时用纯js和ts分别开发好几个项目,这样才能比较全面的体会两者的区别,我就是这么做的.

但我也深知这么做所需要耗费的精力,不是一点半点.所以这篇文章是给项目非绑定TS,还在JS和TS选择上左右摇摆,我用经验来给出一套相对中肯的建议:
用纯js开发,将自由度和高效发挥到极致,回头用AI生成d.ts或jsdoc完成代码提示的支持,统一使用module而不是common,不断去拆分可复用逻辑,让代码具有更好的可读性可维护性.

不要看着好像所有开源项目都上了TS就盲目跟风,那是因为TS最大的优势是给编辑器提供良好的静态分析支持,在代码写的特别多的情况下,自己都会忘记曾经定义的一些参数细节.作为一个工具提供方,要让别人能够愉快的使用,那说明书肯定得提供好的是不.

最后总结,要是在一门为动态设计的语言中,去练习静态带来的优势,远不如直接去真正的静态语言修炼带来的收益大.动态和静态没有对错,都有其刚需发挥作用的场景,就像菜刀和螺丝刀,切菜就用菜刀,打螺丝就用螺丝刀,一个带螺丝刀的菜刀并不会有多好用.

https://www.tiobe.com/tiobe-index

我预言JS未来在动态语言中,起码能做到跟python平起平坐(在我的实践中,它已经超越了我曾经最爱的动态语言,做过不少项目的,小蟒蛇)

37 个赞

我要是用纯js,我净查api参数去了

4 个赞

PHP是世界上最好的语言

10 个赞

一开始用 ts 认为好在强要求,基本丢错东西一定给提醒,可以避免测试时没问题,上线后被使用者玩坏的意外。

不过 ts 复杂起来体操多也是事实,我认为 js doc 是很折衷的作法,没接触 ts 的人可以快速适应,并且 ide 也确实能在使用时方便的查看,现在 ai 也能很大程度辅助生成。

我同学之前分享,他们团队里 ts 项目遇事不决就是 all 。老板只看你何时东西出来没,而且这时代大家都是打工的,来来去去,一新人再做个体操还没热完身就汗流浃背了。

2 个赞

ts? anyscript 罢了,别说什么类型系统.
我见过写java的hashmap一把梭的.
ts拿来写库什么的还可以.做应用还是算了…你永远也别想靠这点语言的机制去屏蔽你的sb队友.

2 个赞

TS 和 JS 混写啊。不一定要遵循 TS 规则,反正最后都转为 JS 。

1 个赞

理论上来说,hashmap再做好全局返回处理的时候,一把梭也没啥问题啊。我就很讨厌那一套固定的模版,为了一个属性单独建一个类也太抽象了。

1 个赞

我是从来没用过 ts,js 一把梭

4 个赞

能在编译期发现的错误硬要推迟到运行时是吧。
以前我不能明白,现在总算是明白了。

1 个赞

目前是ts只做组件的接口定义,一些公共方法的定义,剩下的还是用js写,一直不喜欢ts,只能编译时校验,运行时不行,都是白搭,大多数bug都是后端返回接口参数对不上,导致的

1 个赞

能在编译期发现的错误硬要推迟到运行时是吧

在不复用的情况下,改哪里不是改。我并不明白你想表达什么意思。

1 个赞

插个眼,蹲!

1 个赞

目前一般项目能上 TS 最好, 未来 TS 一定是以某种方式合并到 JS 中的For now, it’s best to use TS for general projects, but in the future, TS will definitely be merged into JS in some way.

一切能用 JS 实现的最终都会以 JS 实现Everything that can be implemented in JS will eventually be implemented in JS.

2 个赞

必须是js啊

1 个赞

写强类型的肯定是选择TS,
写弱类型的肯定选择JS,比如我PHPer。

1 个赞

如果可以转换,都行呢

1 个赞

其实很简单,一切从需求出发,不要创造需求

当你目前写 JS 感觉一切顺利时,转到 TS 你就会感觉如坐针毡。
而当你拿到一个项目代码,映入眼中的是各种不明所以的变量时,这时候你就会想要是 TS 就好了。

结论:写之前先想想自己需要 TS 的静态分析优势还是需要 JS 的快速开发优势。

1 个赞

自己写必须 JS
别人写必须 TS

6 个赞

盲猜一波js

1 个赞

文件名是 .ts的,里面全是js :crazy_face:

4 个赞