再见了TypeScript

作者: 程序员三千分类: 计算机技术 发布时间: 2023-12-15 09:04:44 浏览:67855 次

再见了TypeScript

为空断言:
很多人都都黑不到点子上,我提供几个思路: 1. 很烂的性能。项目大起来之后,类型提示的速度明显变慢,且编译时间过长。虽然现在有swc,但目前肯定还是不如官方一样支持各种特性的 2. 离谱的学习曲线。各种乱七八糟的细节防不胜防,奇怪的泛型,花式体操,各种抽象递归推断,type和interface选择困难症 3. 需要顺从编译器。很简单的功能却要标注一大堆类型,as any用到饱。一个简单多功能函数写一万个重载 所以现在很多大库都选择用js写核心功能,然后单独提供声明文件

【回复】1.类型提示是编辑器的问题,也可能是电脑的问题,编译速度慢需要优化编译器 像go rust 他们都在优化编译速度 2.任何语言都有学习曲线这个和ts无关,至于选择困难症 这个干啥都会有 也和泛型无关 type和interfere最大的区别是一个可以继承 3.ts的目的就是为了约束开发者 4.觉得ts累赘可以不用ts 毕竟js也可以完成 自己和自己过不去 然后让ts背锅[doge][doge]
【回复】你又不需要强类型那你用ts的意义是什么?ts的出现不就是需要规范js的弱类型!真是搞不懂[呆]
【回复】回复 @为空断言 :我发现有了gpt我学习的效率大大的提高了,我感觉那些视频博主和做培训所谓的互联网大佬们除了装逼,把一些知识说的高大上之外,其实对学习根本起不到本质上的作用的
芜湖大厮马:
人家是写lib 你是写业务。类型可以帮助你更好得理解业务,帮你规范代码减少bug以及后续的人接手也不会那么难受,js 写得烂的是真接手不了,大多数这部分人还天天吐槽ts

【回复】挺赞同的,有一轮流行弱类型,自行推断。后面发现各种维护麻烦,还是转回强类型。
【回复】本质上把js当c,把ts当java或golang看待就行了,写库的写库,写业务的写业务,各司其职,真正应该滚出程序届的应该是某一种语言梭哈所有的脑瘫收钱布道师。
【回复】越是菜鸟越不喜欢按照规范的方式做事
伊万De乌托邦:
[笑哭]嫌打包慢还能稍微理解,连类型污染代码都说出来了,,我这个plt毕业的看没类型的语言像观猴

【回复】习惯了Java的强类型,对Python和JavaScript一类的语言十分不感冒
【回复】没定义类型真的很迷头写的什么东西本质是啥 函数到底要传什么参数 自己一个人写也许能理解 但是多人开发没类型提醒帮助真的就是💩
【回复】不说点奇怪的怎么吸引读者
忆丶距:
我觉得问题根源在于本来js就是弱类型,很多地方js写的很自由没有类型可言,此时如果用ts强行增加类型,就会导致本来没必要有类型的地方写一堆类型,我这几天在写python就有这种感受,有些时候只是简单的数据传输,并且生命周期很短,写个注释告诉调用者这个函数会返什么就行了,但这种情况下如果是Java你,想简单点就只能返一个map,调用方拿到value还得cast

【回复】[doge]强类型语言使用者表示喜欢用强类型。工整。弱类型不利于阅读
【回复】弱类型语言不适合做太大的项目 维护地狱 工程化本身就意味着更多的标准和约束
【回复】TS是弱类型静态脚本语言,JS是弱类型动态脚本语言,Python是强类型动态脚本语言[藏狐][藏狐][藏狐]
贾一饼:
用ts都有一个过程,刚开始终于有个解决js没类型的方法了,欣喜,然后用了不久各种特性用起来,真香就是写类型稍微麻烦,了解的越来越深,看了越来越多了ts开源代码,这一大坨是什么东西,一层一层点进去点不到头,不管了不看那么细了,开始自己对外输出的时候,我用ts到底给我减轻了什么工作量?解决了什么痛点?

【回复】哈哈哈,真实,其实不是强类型和弱类型的问题,而是面相过程和面相对象的关系,很多c库很简单,但去看他的c++库,就会感觉头疼,层层抽象,抽象虽然有利于功能扩展,但对于使用者来说让人去理解抽象的事物本身就很难,最后让系统变成了巨大的抽象机器,如果在遇到乱起类名的,简直就是灾难[笑哭]
【回复】类型体操大多数的情况是为了给复杂类型提供更智能的推导,多少智能是看情况的。 比如一个表示颜色的字符串属性 1.简单一点我可以写个string 2.复杂一点的我给一个type ColorName ='red' | 'blue' |...的字符串常量类型联合 3.上面2里面不能传任意hex颜色值,我再定义一个type Color = ColorName | (string & {}) 4.为了避免使用的人传入任意字符串,我再加强一下type Color = ColorName | HexColor,其中type HexColor = `#${string}`; 5. 我觉得光限制开头字符为 # 还不够,为了确保使用的人永远写不出非法的颜色字符串,专门定义一个工具类型Hex代表A-F的字母,再建一个工具类型type RgbHex = `#${Hex}${Hex}${Hex}${Hex}${Hex}${Hex}`,然后定义type ArgbHex,定义type CssRgbFunction,type CssArgbFunction,最后定义Color等于这么多东西的联合 这下终于发挥出了ts类型系统的全力,但取而代之的是一个简单的颜色字符串就变成了无比复杂且晦涩难懂的东西,但实际上需要那么复杂吗?
【回复】回复 @bili_31222389267 :export type ShallowRef<T = any> = Ref<T> & { 【ShallowRefMarker】?: true },你可以看下vue最基本的类型定义,你觉得很好理解那就可以看下稍复杂的DeepReadOnly了,很多刚接触ts的定义类型就是一个type或者interface加几个字段觉得定义类型很简单,如果你觉得尤雨溪也没理解需求或者设计不行那我没话说了
☆.·★∴°:
20 多年的前端经验,js 也写了 20 年了,中间还写过 vb,写过 c#,写过java,目前前端项目基本都是ts写的,并且启用严格模式,禁止any类型,什么泛型接口抽象类继承等等全给整上,为的就是小白接手我的代码时有更好的体验,也为了防止和小白协作开发时被小白的各种乱七八糟不严谨的代码污染。多人协作做lib的话,ts或者jsdoc都可以,做业务的话因为生命周期很短,自己爱用js就用js,爱用 ts就用 ts, 反正都是自己维护。用 ts 的好处就是可以强行拔高小白的起点和大佬进入共同开发

【回复】大佬!能接点活吗,真心求开发
方布衣:
很明显你也没说到点上,别人不用ts并不是抛弃了类型提示,只是转向了jsdoc一样在拥抱类型提示

SlimeNull:
人家库作者是从 TS 转 JSdoc,有类型标注的情况下写起来依然是爽的,但是有些 SB 自己写不好项目,关于类型的注释不写,JSDoc 也不用,就直接跟风喷 TS。鬼知道它这个函数返回的对象里面包含什么成员啊!

【回复】的确,ts配jsdoc爽的一批,大多情况下都不必到处跳来跳去看源代码是个啥子情况。
肚肚胖小虎:
ts 你用any不就可以了? js写代码,然后加类型直接让gpt给你加

【回复】回复 @两袖清风岂敢入繁华 :把js代码贴给Chatgpt、bing 同时跟它说让它添加typescrpt类型支持。就会给你写出来了
【回复】哈哈,找到同志了,把ts用成anyscript
【回复】回复 @极九v :感觉你没写过jsdoc。。
行胜于言all:
项目赶直接全部any[笑哭]太费时间了写ts

【回复】哈哈哈,纯粹就是个形式,还用个屁的ts ,自己骗自己
【回复】回复 @wfy1990_zk :[脱单doge]
弱鸡白:
小孩才做选择,根据项目特点充分利用各个语言的优势。

白阳致远:
觉得ts不好用的要么是习惯其他语言不适应,要么就是js写的脑子傻了

【回复】觉得js不好用的要么是习惯其他语言不适应,要么就是ts写的脑子傻了
【回复】卡在js和java之间?有没有可能ts的类型系统比java强大的多…
【回复】回复 @百音碧油果 :[脱单doge]
假梦幻泡影:
强类型语言,比如java c# golang 写起来比js爽多了,可读性高,改起来容易。typescript没用过。同时维护两个语言的接口也很坑。

【回复】回复 @东边的BiLi :java kotlin ide可以补全。写代码很爽。js的ide补全半残废。[doge]改代码js基本上很难搞,只能全项目搜字符串[doge]
【回复】强类型写起来怎么会比js爽 只会读起来爽 js的自由随心才是真的爽 不过也留下了隐患[doge]
灵活的汤勺:
像python一样就好了,不严格检查,用也行不用也行

【回复】回复 @墨沁哦 :Python本身就是强类型的了,加类型注释没法提高解释器效率。除非变成静态类型,注释告诉解释器这里要改变类型了。这样解释器优化才有可能
【回复】回复 @再打就哭啦 :你看看tsconfig 可以改成什么都不限制,你把文件名js改成ts就完了,文件内容一个字都不改都行
阿炸克斯:
一个前端如果连ts都抵触,那么水平也就那样了。

【回复】Ts 对于熟练的前端来说有点鸡肋 违背了js的本质 灵活的弱类型脚步语言
全易:
反正还得编译成js,不如直接用js。而且js有use strict模式啊

Zero123_:
你会发现一点,往往喷ts的人是那群只会any万物的js佬,换个语言就能铺盖

快乐搬砖coding:
我java,kotlin,感觉ts跟kotlin很像,这种语言才是未来

编程语言 编程 前端 JavaScript 前端开发 Web 必剪创作

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!