刚才看到 https://juejin.cn/post/7218117377052377143 , 深有同感。
本人做项目外包,给客户的代码常规都使用js实现,极少需要给客户直接使用的类库才使用 ts(也因为万恶的 vscode 给自家的语言做了代码提示优化)。在我看来ES 5/6/7才是原滋原味的 js ,而不是披着 js 外衣的 C#。
|  |      1hsfzxjy      2023-05-01 22:04:54 +08:00 via Android 但是 ts 的代码提示真的很爽 | 
|  |      2codehz      2023-05-01 22:18:57 +08:00 via iPhone 这篇钓鱼文还真有人翻译也是笑死( 看看原文发布时间 | 
|  |      3kkocdko      2023-05-01 22:19:42 +08:00  1 0. 由于“TypeScript 是 JavaScript 的超集”,所以不存在“完全放弃原生 JS”的说法。没有人会阻止你写 AnyScript 。我平时写的时候,就只会在发现类型提示不见了之后才主动补充一下定义。 1. TypeScript 不太可能消亡,因为现有的针对 JavaScript 的智能提示大多是基于 tsserver ,这是强大的 TypeScript 给我们的恩赐。 2. 针对编译速度问题,可以使用 ESBuild ,SWC 等方案,由于它们只做类型擦除等原因,速度很快。我这里有一个中小规模的前端项目,编译时间几乎可以忽略( esbuild 0.3s )。 3. 使用 JSDoc 替代 TypeScript 在大多数时候可行,但是你想想,是写 `/** @param Type name */ function foo(name)` 方便,还是写 `function foo(name: Type)` 方便呢?我觉得只要你不写出类型体操,TypeScript 没有什么不好的地方。类型体操是库作者应该纠结的事。 | 
|  |      4DonaidTrump      2023-05-01 22:21:37 +08:00 预计楼下开始打嘴仗 | 
|  |      5crysislinux      2023-05-01 22:28:04 +08:00 via Android 外包你不好写的时候就写 any script 好了。现在的 jsdoc 实际上大部分时候已经是靠 typescript 工作了。原本的 jsdoc 语法有很大的局限性。 | 
|  |      6lisongeee      2023-05-01 22:39:38 +08:00  1 如果这个提案 <https://github.com/tc39/proposal-type-annotations> 进入 stage 4 ,你又准备写哪个版本的 js 呢? | 
|  |      7pursuer      2023-05-01 22:41:44 +08:00 我更习惯写 typescript ,找库的话也是 typescript 优先,不然看代码有点痛苦 | 
|  |      8lujiaosama      2023-05-01 22:54:33 +08:00 ts 写熟练了根本没啥心智负担, 就当成简单的类型提示来用, 又不是成天搞类型体操. 视 ts 如洪水猛兽的真的难以理解, ts 带来的健壮性给人一种安全感, 我相信也没多少人写原生 JS 会加上 use strict.  ts 带来的好处小项目是体现不出来的, 在上了规模项目, 多人协作时就非常关键了,需求频繁变动,破坏性改动时 ts 带来的好处不言而喻. 要吐槽的是 ts 的类型收窄, 还是不够智能时常得断言. 以前合法的现在不合法了, 打开项目一片红. 如果是第三方库的报错就更头疼了. | 
|      9renmu      2023-05-01 22:56:01 +08:00 via Android 我喜欢别人项目是 ts 写的,而我用 js (狗头) | 
|  |      10dumbass      2023-05-01 22:56:31 +08:00 via iPhone i love ts.再小的项目我也要上 ts ,为的就是让它给我自动提示🤣 | 
|  |      11rb6221      2023-05-01 22:58:55 +08:00 ts 那些丰富的特性本来就是因为大型和超大型项目的复杂度才诞生的,你写个 demo 纠结什么啊,拿自己长处抨击别人短处是不是有点离谱了 | 
|  |      12huijiewei      2023-05-01 23:02:33 +08:00 我写 hello world 也用 js 一切抽象在 hello world 面前都是 x | 
|      13dayeye2006199      2023-05-01 23:11:40 +08:00 via Android 如你所说,因为你一个人写外包。你要是包工头,可能就想着 ts 了 | 
|  |      14Imindzzz      2023-05-02 00:02:28 +08:00 | 
|  |      15opentrade      2023-05-02 00:03:44 +08:00 自己一个人写着写着就到处是 any | 
|      16humbass OP @dayeye2006199 我刚好就是包工头,多的时候有招了 12 个同事,目前经济不好只有 3 个同事。顺便说一句,隔壁写 ts 的和写  java  的外包都倒闭了,原来我们这个孵化器有 9 个外包公司。 | 
|  |      17cosmain      2023-05-02 00:57:39 +08:00 | 
|  |      18cosmain      2023-05-02 00:58:03 +08:00 我错了,是 3 月 20 日 | 
|  |      19KMpAn8Obw1QhPoEP      2023-05-02 00:59:42 +08:00 via Android @cosmain 有没有一种可能 Mar 是三月的缩写😅 | 
|  |      20KMpAn8Obw1QhPoEP      2023-05-02 01:00:11 +08:00 via Android @cosmain 我错了 回复时没刷新内容( | 
|  |      21KMpAn8Obw1QhPoEP      2023-05-02 01:03:22 +08:00 via Android 就正题来说 本来就是一个东西 为啥要分开 各有优势和使用场景 哪个合适用哪个就好了嘛 想短平快的 可以预见不会大规模重构也不会扩展维护 那肯定是 JS 撸完拉倒 想写着更踏实 更易于阅读 需要不定期重构 且长期维护 那从最开始就用 TS 好好规划一下 收益多多 | 
|  |      22Aloento      2023-05-02 01:03:53 +08:00  1 笑死了,为什么 V2 上还会有这样的问题 | 
|      23ochatokori      2023-05-02 01:33:37 +08:00 via Android 前端喜欢用 js 写,nodejs 后端喜欢用 ts 写 | 
|      24TWorldIsNButThis      2023-05-02 01:39:50 +08:00 我用 react 没这个问题 | 
|  |      25BeautifulSoap      2023-05-02 01:54:00 +08:00 via Android ts 有各种问题,比如编译后失去变量类型导致无法简单做 validation ,无法 di 注入,json 解析都没法确保和定义的 class 结构一致等,所以导致 ts 项目里装饰器满天飞。但那都是别的问题,和去用 jsdoc 来做类型注释写个 hello world 等级的代码就发文章是另一回事。 | 
|      26Leviathann      2023-05-02 02:01:49 +08:00 @BeautifulSoap 很多 validation 库提供的 codec 功能保证了运行时结构和定义一致,只需要在输入输出的地方调用即可 | 
|      27asuraa      2023-05-02 08:23:25 +08:00 大部分人写 ts 最后全是 any 那你还不如写 js 呢 | 
|  |      28justin2018      2023-05-02 09:12:20 +08:00 除了类型体操 和 AnyScript , 其他的还好~~ 主要是为了编译器补全~ | 
|  |      29learningman      2023-05-02 10:15:17 +08:00 在我看来汇编才是原滋原味的编程语言 ,而不是运行时解释的 js 。 | 
|  |      30FreshOldMan      2023-05-02 10:42:41 +08:00 js 这种没类型的,效率高在哪里,你呆的都是创业小公司吧,协一坨类型不明的 data ,class ,这个后面谁来维护 | 
|  |      31xiangyuecn      2023-05-02 11:31:50 +08:00 写 c++ ,编译成 js | 
|  |      32ruoxie      2023-05-02 15:15:19 +08:00 TS 给我更好的的开发体验,所以我用 TS 。你觉得原生 JS 给你更好的开发体验,那你就用原生 JS 。别为难自己就好 | 
|  |      33AV1      2023-05-02 18:02:02 +08:00 写 TS 的人按下.就知道 object 里的字段了, 写 JS 的人还在翻过期的文档,然后一边单步调试一边 console.log ,摸索这 object 到底塞了啥。 | 
|      34a379395979      2023-05-02 22:06:42 +08:00 感觉也就前端圈疯狂内卷的结果吧,就连 npm 都有 pnpm 、yarn 。 弱类型语言也很多,也没见哪个用别的语言来转成自己的。。 | 
|  |      35flyqie      2023-05-03 01:44:44 +08:00 via Android @a379395979 #34 其他不评论,主要最后一段。 归根到底还是设计 js 的时候大家都没想到浏览器会发展到今天这样。。 结果搞得现在只能修修补补,各种转回到 js 的语言也是因为没办法直接改掉 js 这座屎山所做的妥协(后端相对来说干净很多,因为没那么重的包袱)。 | 
|  |      36Aloento      2023-05-03 01:54:05 +08:00 | 
|      37a379395979      2023-05-04 08:45:59 +08:00 @flyqie 你要说十几年前 js 是座屎山我同意,现在嘛。。 就感觉前端这个圈子没事干挺奇怪的 | 
|      38ko1haha      2024-07-21 13:55:47 +08:00 我喜欢 js ,因为我的代码风格和混淆后的代码高度一致,参数名首选 e ,次选 a,b,c,d ,这让我觉得那些闭源的浏览器扩展也是开源项目。(狗头) | 
|      39roundgis      221 天前 via Android @crysislinux 這和 gcc 是用 cpp 寫的 但是實際上用 c 的人更多是一個道理 |