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