首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Node.js
Express
PPA for Ubuntu
ppa:chris-lea/node.js
hxgdzyuyi
V2EX  ›  Node.js

typescript 真的好用吗?

  •  
  •   hxgdzyuyi · 69 天前 · 9641 次点击
    这是一个创建于 69 天前的主题,其中的信息可能已经有所发展或是发生改变。

    楼主接触 js 十多年了。 之前也写过 flash 的 actionscript3 。目前还没有用过 typescript,感觉 typescript 主要是加了一个类型系统。

    当时在真实工程环境里头不会麻烦吗,感觉代码阅读的难度和写起来都更麻烦了。

    不知道实际操作过的人会觉得好用吗,不会影响开发效率吗。

    83 条回复    2020-03-29 06:08:13 +08:00
    hxgdzyuyi
        1
    hxgdzyuyi   69 天前
    当时 -> 但是
    wjj5728
        2
    wjj5728   69 天前
    好用? -> 真香
    yaphets666
        3
    yaphets666   69 天前
    我觉得看团队 小团队没必要 但是大团队也没必要 只是大团队才能从中获得到一些好处
    will0404
        4
    will0404   69 天前 via iPhone   ❤️ 7
    debug 的时候,你是怎么检查一个对象的?想要看看它里面的方法,属性,是不是只能 console 出来?或者打断点?无论怎么样都要运行时浏览器里看是不是?有了类型,在编辑器里就知道它是个什么玩意,这就是类型带来的最本质的快乐,你说它香不香。
    vimsucks
        5
    vimsucks   69 天前   ❤️ 1
    代码补全很香啊,再也不怕打错字了。。。
    InkStone
        6
    InkStone   69 天前
    加上类型系统明明是读起来和写起来都更简单了。

    反正调试起来有代码映射,编译运行基本也是透明的。
    whitehack
        7
    whitehack   69 天前
    真好用!再也回不去 js 了
    sxd
        8
    sxd   69 天前
    你都写过 as3, ts 还用学么?
    llb123
        9
    llb123   69 天前
    读起来简单了+1
    optional
        10
    optional   69 天前
    真香系列
    blodside
        11
    blodside   69 天前 via Android
    适度用 any 的话就不麻烦很爽,如果是强迫症都要整上类型就不爽了
    zhjie
        12
    zhjie   69 天前
    @will0404 #4 那是写 node 香,写前端臭。
    TomeWong
        13
    TomeWong   69 天前
    最近的一个项目中使用的 Typescript,加了很多类型题型,还是很有帮助的
    sherryqueen
        14
    sherryqueen   69 天前
    自动提示很爽哇. 维护起来也方便
    backrunner
        15
    backrunner   69 天前
    写后端必备吧,前端不见得一定爽
    tolking
        16
    tolking   69 天前
    自从用了 typescript 感觉少写了好多 bug
    hxgdzyuyi
        17
    hxgdzyuyi   69 天前
    @backrunner 这么一总结有道理。
    across
        18
    across   69 天前
    麻烦?
    习惯 C++/C#,写 js 的时候,没有类型总觉得心理没底,感觉流程没有保障,像 C#那样,隐性类型转换都报 error 我才放心···
    lewinlan
        19
    lewinlan   69 天前 via Android   ❤️ 2
    恕我偏激。不用 ts 的都应该去枪毙。
    这段时间看别人写的 vue 代码简直想吐。
    神奇的 js 语法 xjb 乱写你是爽了,别人痛苦了。
    rockcat
        20
    rockcat   69 天前
    语言本身没毛病,就看生态了。微软一贯的风格。
    hxgdzyuyi
        21
    hxgdzyuyi   69 天前
    @rockcat 这和生态关系不大吧, 两边生态是通用的。
    Woodywuuu
        22
    Woodywuuu   69 天前
    好用是好用,但是你架不住喜欢 anyscript 的人
    aabbcc112233
        23
    aabbcc112233   69 天前 via Android
    接触 js 十多年了,没接触过静态类型语言吗?
    otakustay
        24
    otakustay   69 天前
    不好用,但实用
    hxgdzyuyi
        25
    hxgdzyuyi   69 天前
    @aabbcc112233 说这话没意义,就像在说设计 js 语言的人没接触过静态类型语言一样。
    minglanyu
        26
    minglanyu   69 天前
    @Woodywuuu anyscript 还行
    TangMonk
        27
    TangMonk   69 天前   ❤️ 2
    用过 C#, Java 之类的语言就不会这么说了
    hjdtl
        28
    hjdtl   69 天前
    @vimsucks 代码补全是编辑器的功能
    aabbcc112233
        29
    aabbcc112233   69 天前 via Android
    @TangMonk 显然没有深刻体验过。
    ZZITE
        30
    ZZITE   69 天前
    一开始写起来麻烦是肯定的,影响开发效率也是会的。但是读起来我觉得是很香的,尤其在团队协作时看别人的代码要比看 js 容易了。
    InkStone
        31
    InkStone   69 天前
    @hjdtl 静态类型语言的代码补全远超动态类型。补全插件再强也弥补不了这里的差距
    icyalala
        32
    icyalala   69 天前
    我之前一直在写强类型语言的代码,写 JS 时每次都提心吊胆
    TS 让我重拾信心
    otakustay
        33
    otakustay   69 天前
    @hjdtl 没有类型编辑器顶多补补函数参数了
    geshansuiyue
        34
    geshansuiyue   69 天前
    所以有人说过,新手用 ts 就是加个类型 ,其实还有挺多好用的东西比如装饰器之类的。
    toma77
        35
    toma77   69 天前
    反正我 React 和 Node 统一 TS
    Soulike
        36
    Soulike   69 天前
    TS 能把错误拦截在编译阶段而不是运行阶段,这就是最大的意义
    g00001
        37
    g00001   69 天前
    typescript 即保留了动态语言轻便灵活的优势,又解决了动态语言散漫难以控制的缺陷,
    在类型化上的小小付出并不算什么( 玩进去里面很多东西会非常有趣 )。
    hdr01
        38
    hdr01   69 天前
    @otakustay 抓住灰大
    raymanr
        39
    raymanr   69 天前
    居然对 ts 都是一致的好评? 可能是我没做过啥大项目吧, C# 出来玩了几年, 已经完全习惯动态语言了, 类型什么不存在的...
    fengbjhqs
        40
    fengbjhqs   69 天前
    如果没有 vscode 的推,也不可能也不会香的这么快,

    写起来的确麻烦, 但维护真香,特别是维护别人的代码,js 的引用特性,有时候真的不好猜这个对象到底有啥子数据,

    当然如果你只用 ts 的 any,当我没说
    yngzij
        41
    yngzij   69 天前
    ===0
    ==0
    ==='0'
    =='0'
    onecode
        42
    onecode   69 天前
    @yngzij 这个很秀
    SilentDepth
        43
    SilentDepth   69 天前
    个人感受:在开发基于特定数据结构的项目时真希望写的是 TS,一来代码提示更高效,二来光靠变量名辨别预期的数据类型是不够的,此时加上类型标注或提示会好很多。另外,类型关联完善的情况下,重构也痛快得多。

    阅读难度和编写麻烦度都跟类型完善度有关。类型完善了,读起来和写起来跟 JS 没大差别(除了必要的类型声明和转换,大部分类型都被隐式推到了,编写时不必关心),而且 TS 引入的一些新特性反而有助于提高可读性。当然如果类型不完善就另说了。

    我觉得 TS 目前的问题是相关工具生态还不够成熟,准入门槛还不够低。过去一年 TS 在这方面有明显的进步,但还没达到可以让 JS 社区轻易接受的程度。(虽然也许不是 TS 的问题。)
    jin5354
        44
    jin5354   69 天前
    不好用,你要是真仔细写 ts 就知道,ts 现在的缺陷还太多,智能程度也不够,太多地方推导不出来要自己写 hack 。
    可读性也是一个问题,有的函数声明加上类型声明可能超过一行,又长又复杂,看的人眼都瞎了。

    但是必须用,因为类型检查太重要了。
    Mark24
        45
    Mark24   69 天前
    不好用

    很多人是为了用而用
    KuroNekoFan
        46
    KuroNekoFan   69 天前
    用了一段时间
    最大的问题是 tsserver 经常出问题
    另外就是结合 react-redux 的范式模板会使得改动变得异常繁琐
    yafoo
        47
    yafoo   69 天前 via Android   ❤️ 12
    那么多年一直用记事本写代码的人,表示坚决不用 ts 。
    本来动态可变类型是 js 和 php 的特性和优点,就因为现在部分.net java 程序员参与了进来,硬生生给改成强类型语言了,严重破坏 js 生态系统。
    记得前几年有次跟.net 后端对接接口,有个字符串需要拼接处理一下,弄了半天他愣是搞不定,因为他那数据结构定死了,就那样,不能动。
    还有就是编译,本人坚决反对编译,现在每次修改程序,改个字符都要重新编译。
    喜欢 ts 的,建议直接去写 java 或者 c 程序。
    喜欢 js 的请点赞,喜欢 ts 的请忽略本条评论,哈哈!
    AmiKara
        48
    AmiKara   69 天前
    ts 有 java 的味道,感觉写起来逻辑比 js 更加清晰,但是代码量会比 js 大很多,新人玩个人项目的时候建议用 js,不然你用 ts 只会用成 anyscript
    yaphets666
        49
    yaphets666   69 天前
    @lewinlan 确实偏激了兄弟 你看 TS 推广不开你就明白怎么回事了 VUE 是能写出可读性最高代码的前端框架了
    Yiki
        50
    Yiki   69 天前
    ……学过 java 对 TS 很容易上手就是了
    纯 JS 不觉得很烦躁吗……
    JerryCha
        51
    JerryCha   69 天前
    没有类型,心里总有根弦绷着,担心类型不对出错
    mitu9527
        52
    mitu9527   69 天前
    以前有一门编程语言叫 javascript,后来微软借 ie 参与竞争搞了个山寨版的“js”,从此前端工程师的痛苦开始了,也让 web 前端的发展停滞了将近十年。chrome 好不容易挽回了局面,微软又杀回来了,虽然这次是在更高层面上切入,但混乱又开始了。试想一下,如果真的越来越多的前端开始依赖强类型,那么 js 势必会引入一套自己的方案,届时会会更混乱。历史的轮回从来没听过,哎。
    mitu9527
        53
    mitu9527   69 天前
    个人预计,js 目前这个小修小补的阶段就快结束了,很快就会像当年 ecmascript 4 一样引入强类型了,届时更混乱。再加上 web 汇编的引入,前端又会乱成一锅粥。
    hantsy
        54
    hantsy   69 天前
    用于后端开发人员,TS 很亲切,ES 5 毫无章法,要人命,ES 6 勉强能用。
    zpm683
        55
    zpm683   69 天前
    香!
    galikeoy
        56
    galikeoy   69 天前
    ts ?啥子东西哦,这么麻烦。
    galikeoy
        57
    galikeoy   69 天前
    @galikeoy #56 几天后:真香!!!
    ansenJ
        58
    ansenJ   69 天前
    小公司用 TS 的话 一个好的产品经理是你的门槛....
    stabc
        59
    stabc   69 天前
    个人项目。尝试过用 TS,最后放弃了,主要原因是灵活性不够。而且类型检查只约束程序员,不约束用户输入,处理用户输入时需要额外再写一套检查。
    团队项目的话我倒是推荐 TS 的。
    huiyifyj
        60
    huiyifyj   69 天前
    确实是真香。但是...当团队要求禁止使用 any 类型,就会有点不太香。
    hurrytospring
        61
    hurrytospring   69 天前
    香,不想多说。
    marcong95
        62
    marcong95   69 天前
    个人而言几乎没用过静态类型语言做大项目,公司之前某个项目试了一下 TS,一开始我还很坚持写类型定义啥的,然而做着做着似乎就变成了 anyscript 了。。

    毕竟 npm install 是 JS 的包,就算有.d.ts 也难以避免有些地方的返回值是个 any,然后又变回 anyscript 了
    slert
        63
    slert   69 天前
    我觉得不用写类型很爽。很多项目并不那么需要 ts,为了 ts 而 ts 的话,也许引入的麻烦比解决的问题多。
    magicdawn
        64
    magicdawn   69 天前
    不用 TS, 当你的项目因为是 js 带来很多 bug 的时候, 说明你需要 TS 了
    yiqidaoshan
        65
    yiqidaoshan   68 天前   ❤️ 1
    好处是防止有些人自由飞翔,坏处是你不能自由飞翔了
    rbe
        66
    rbe   68 天前
    @stabc #59 约束程序员就是 ts 最大的意义呀,任何语言写接口都需要自己处理用户输入。写一个 function 给别人用,别人在敲下方法名时就知道参数和返回值的 "shape", 乱传会编译不过这非常好。
    Tokin
        67
    Tokin   68 天前
    初次写因为有些时候要自己定义类型挺麻烦的,但是事后隔了一段时间再读代码,感觉真的很舒服。
    wi
        68
    wi   68 天前   ❤️ 4
    看了评论,弱鸡太多,不写 Ts,去写 Js,活该你写 Js 。Ts 是挡不住的,Js 纵容那些白痴写代码,到后来还是用 Ts 重写,你可以现在不学,但是你也挡不住 Ts,门槛就是要提高。
    OHyn
        69
    OHyn   68 天前
    提高代码质量的下限。。。
    yafoo
        70
    yafoo   68 天前 via Android   ❤️ 2
    @wi 难道不是太弱鸡,驾驭不了 js,所以才用 ts 遮羞一下?
    说 bug 多的,那是能力不行,写不出好的代码。
    就跟驾驭不了手动挡汽车一样,也就只能开开自动挡的。

    纯属抬杠,😊
    CuVee
        71
    CuVee   68 天前
    不好用,写 node 可以,写前端除了代码可读性提升了,其他方面没卵用
    justin2018
        72
    justin2018   68 天前
    代码补全 真香~~
    civet
        73
    civet   68 天前 via iPhone   ❤️ 1
    说白了 TS 其实就是微软想将 JS 进行 C#化,越看这个语言的版本更新就越明显。写 JS 用上了 ES6,习惯了函数式编程之后又是另一番体验,TS 未必要用上。目前 TS 的特性已经比上几版本复杂太多了,不断复制 C#特性最终会导致过度设计
    xcstream
        74
    xcstream   68 天前
    用 js 写也不会遇到什么难以解决的 bug
    tourist2018
        75
    tourist2018   68 天前
    我觉得 ts 看起来已经比 js 舒服啊 有类型系统不管自己写代码还是 debug 都舒服多了
    tikazyq
        76
    tikazyq   68 天前
    ts 不管是可读性还是可维护性都远超原生 js
    gaojiren
        77
    gaojiren   68 天前
    ts 真香,用了根本回不去,写起来和 C#一样行云流水
    noobma
        78
    noobma   68 天前
    肯定推荐 ts 啊,比如有一个对象,后来你需要增加字段、删除字段、修改字段类型,用 js 的话,要自己手动一个个的找到使用的地方去做对应的修改;用 ts 的话,在 interface 那里改一下,等着编译报错,到对应的报错的文件里面,结合 webstorm 的 fn + f2 跳转到下一个错误去修改,直到编译不报错,这样产生 bug 的几率会更小一些吧😂
    noobma
        79
    noobma   68 天前
    我以前也是觉得用啥 ts,我用 js 还不是一样搞得定,徒增负担罢了。用了 ts 后,再去接手别人的 js 项目,真的会产生抵触心理😂
    codelegant
        80
    codelegant   68 天前 via iPhone
    @noobma 你这个应该用 WebStorm 的重构(refactor)功能,自动搜索所有引用并改名。
    noobma
        81
    noobma   68 天前
    @codelegant 改名和我说的是一回事吗?
    wi
        82
    wi   67 天前
    说 Ts 像 Java 、C# 的感觉是不能明白:为什么 Ts 是 Js 的超集,知道 keyof 怎么用吗,知道联合类型和交叉类型吗。Ts 的类型系统不是 Java 、C# 能比的,Ts 可以说很强大,可以描述 Js 的很多东西。
    hc181533609
        83
    hc181533609   67 天前 via Android   ❤️ 2
    看看评论,很感慨,只想说点非技术性评论,中间有一群人,都是个代码狗而已,哪来的这么多优越感呢,一上来鄙视这个鄙视那个,都是穷逼一个屌丝居多,写代码还写出优越感,足见劣根性。哪有什么喜欢呢,都是为了利益,有经济有享受鄙视的快感,总之都是蠢,自己团架构不行,或者自己技术菜,怪到语言的头上,存在即合理,一门语言将近三十年的历程,还没消失在历史长河中,就足见强大性,也没见那些大神鄙视这个鄙视那个的,说的难听点,都是些 gb 在鄙视人,做人要学会谦逊心存敬畏,都是代码狗居多,穷逼居多,也要比比?合着就你能了?真的是劣根难除?有人觉得看着刺眼,可以举报。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3644 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:42 · PVG 18:42 · LAX 03:42 · JFK 06:42
    ♥ Do have faith in what you're doing.