TS: 不会还有人在写JS吧

  • “TypeScript 是 JavaScript with syntax for types.”
    微软官网的这句官方slogan,被社区奉为“最优雅的鄙视”——不是说JS差,是说你连类型都不写,还配叫工程?
  • “把整个 JS 项目转成 TS,不是重构,是考古。”
    每个 any 都是上古遗骸,每个 // @ts-ignore 都是墓碑。你不是在写代码,是在给前任的烂摊子超度。
  • “JS: 1 == '1' 是特性;TS: 1 === '1' 是底线。”
    你还在用 == 搞隐式转换?恭喜,你的代码正在运行时给你发丧礼请柬。
  • “你写的 JS 函数,参数是啥?返回是啥?文档?不存在的。”
    TS 里写个 interface User { id: number; name: string } ,别人一眼看懂。你那 function f(x) ?我得开调试器猜你妈是谁。
  • “上帝都厌倦了TypeScript开发者滥用 any 。”
    你一边喊着“类型安全”,一边 const x: any = JSON.parse(whatever) —— 你不是在写TS,是在给上帝写忏悔书。
  • “JS:写完能跑就行;TS:写完能过编译,才算活着。”
    你还在用 console.log 调试?TS 的编译器早就在你敲下 a.b.c.d 时,就用红波浪线给你写了三千字检讨。
  • “JS库是TS项目里的‘黑户’。”
    没有 @types ?那你不是在用库,是在用一个会随机爆炸的定时炸弹,还指望它给你报错前先打个电话?
  • “你用JS写React?那你是在用乐高积木盖核电站。”
    TS 里 props: PropsType 是契约;你那 props: any ?是拿纸糊的防弹衣去挡子弹。

这里我就不得不说我用到的一些AI了,都已经强调过不要用as any断言数据类型,它就是不听,气得我想打人 :upside_down_face:

Ai:都怪他们喂我吃了太多JS

你去接手别人的代码的时候, 难道没被恶心过吗。比如一个init方法。在一个脚本下,有的地方是 _init ,有的是 init, 还有隔壁脚本过来插一下 来个a.init,你也不确定这个a是谁。 万一这个脚本还有个1000 2000行,几十个地方用了init。 不是不能做, 只是恶心啊。 ts你基本上分分钟就搞清楚怎么回事了,哪里实现,哪里引用,谁的方法,谁的参数。

对的,我有个同事用ts当js来用,各种定义没有数据类型,排查他的代码老烦了

还有用vscode没提示没跳转,用WebStorm才能有提示有跳转,但是乱提示一堆和乱跳转。

工程更加容易维护。纯js我都不敢想,是不是接口和类型几乎没有。变量对象类型满天飞

还是一个道理,大厂有规范有开发规则还好。 小厂的话,用js 真的会死人的。 但是是不是侧面来说,至少看代码的的能力提升了。有时候ts。 大家一起拉屎山,都受不了。何况js。

官方3.x版本都懒得显示可以创建js脚本。
我怀疑你用WebStorm

image

WebStorm清朝老兵是吧 :sweat_smile:

武汉有一个游戏公司好像一直是 cocos2dx-js 魔改引擎。

因为没用过3还,最早是2.0的版本,都是JS 当然也就这么过来了,有那种引擎返回一个不定对象的情况,但COCOS并不多也,绝大部分情况看文档还都是明确类型的,不定的那种 用过几次
也就知道了,不是障碍至少,当然 我只是想了解一下TS的优势,后面估计也会用到,提前学习学习吧

2.4.15版本都这么恶心的,更何况2dx

image

2.x支持 npm 么

之前给别人查bug看过2.x的源码,简直依托答辩。现在3.x的源码就好很多了,很容易看懂

哇,这种代码写起来太累人了,连智能提示都提示不出来。。。。

是的,vscode提示不了,但用WebStorm就能乱提示一堆了。牛马没得选,只能屎山里面缝缝补补

(帖子被作者删除,如无标记将在 24 小时后自动删除)

应该支持 MoonBit ,最后编译成 js