最近 TypeScript 越来越火,那么选择它的理由是什么呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
npm
V2EX    TypeScript

最近 TypeScript 越来越火,那么选择它的理由是什么呢?

  •  
  •   npm 2020-01-12 23:18:36 +08:00 6104 次点击
    这是一个创建于 2106 天前的主题,其中的信息可能已经有所发展或是发生改变。

    TypeScript 最终会被编译成 Javascript,那为什么不直接写 Javascript 呢??

    24 条回复    2020-01-16 06:58:26 +08:00
    npm
        1
    npm  
    OP
       2020-01-12 23:20:07 +08:00
    要学的东西越来越多,感觉都快学不过来了。

    在想要不要学 TypeScript
    tonytonychopper
        2
    tonytonychopper  
       2020-01-12 23:50:46 +08:00
    编程语言会变成 01 代码,那为什么不直接写 01 呢?多看看 TypeScript 带来了什么,才知道要不要学它。
    varzy
        3
    varzy  
       2020-01-12 23:54:04 +08:00 via iPhone
    存在即合理,能火起来必然有其道理。我个人认为 ts 最大的作用就是让你知道 . 的后面有什么。
    wd
        4
    wd  
       2020-01-13 07:17:07 +08:00 via iPhone
    增加 type 主要是为了协作以及让代码更好维护。你想想有一个方法半年后你想重构下,有 type 和没 type 的区别。
    HeyWeGo
        5
    HeyWeGo  
       2020-01-13 08:53:30 +08:00
    用 ts 更多的是工程上的考虑
    AV1
        6
    AV1  
       2020-01-13 09:39:44 +08:00   1
    TS 的成功,不在于它带来了什么,在于它没有妄图革 JS 的命。TS 号称 JS 的一个超集,JS 有的 TS 都有,JS 能做的 TS 都能,JS 更新则 TS 也一起跟进。
    相比之下,Ruby 那帮人搞的 CoffeeScript,且不说把 JS 的语法全打掉,我不太明白这个语言居然禁止 variable shadowing,使得它难以用在多人协同的大项目中。并且随着 ES6 的发布,跟不上 JS 的新特性,很快被湮没在历史的长流中。
    shunfy
        7
    shunfy  
       2020-01-13 09:45:08 +08:00
    js 有了 es6, 还需要 ts 进行加持?
    cmdOptionKana
        8
    cmdOptionKana  
       2020-01-13 09:46:52 +08:00
    一个自己不搞大项目的普通程序员,学 TS 的主要理由就是越来越多公司用它。

    而公司用它的理由就是类型安全,减少低级 bug 的出现,更容易重构,从 Java 等语言转过来容易。

    如果一个自己不搞大项目的普通程序员,不考虑找工作的问题,只考虑在自己的小项目里用什么语言,这种情况下 TS 优势不明显。
    gdrk
        9
    gdrk  
       2020-01-13 10:02:07 +08:00
    更利于工程化吧
    optional
        10
    optional  
       2020-01-13 10:18:57 +08:00
    有团队开发经历就可以领略到 ts 底魅力
    Torpedo
        11
    Torpedo  
       2020-01-13 10:52:59 +08:00
    兼容 js 良好。可以增加类型来限制一下大家
    DFshpAq3
        12
    DFshpAq3  
       2020-01-13 11:01:06 +08:00
    @wd 您好,不太明白重构时有 type 和没 type 的区别,方便指教一下吗
    scofieldpeng
        13
    scofieldpeng  
       2020-01-13 12:27:42 +08:00   2
    @DFshpAq3 #12 这个很简单,比如你重构的时候,看到一个函数,有接收参数,但是你知道这个参数接收的是什么类型么? int ? float ? array ? object ?或者是某一个具体的类?或者返回值是啥你知道么?你这些不知道,你除非把整个系统重头撸到尾,确定 100%知道你到底要改啥的时候你重构的时候才不会漏掉原来的逻辑,避免越重构越垃圾的问题,当然,这只是你重构,你去维护迭代也是同样的
    wxsm
        14
    wxsm  
       2020-01-13 12:39:53 +08:00 via iPhone   1
    项目大了,人多了,js 写出来的东西迟早会变成一坨,但是 ts 和 eslint 可以提高这的下限。
    uxstone
        15
    uxstone  
       2020-01-13 13:45:58 +08:00
    类型即注释
    iRiven
        16
    iRiven  
       2020-01-13 13:54:54 +08:00 via Android
    类型!
    Vegetable
        17
    Vegetable  
       2020-01-13 13:56:12 +08:00
    ts 符合前端大势--工程化.
    agdhole
        18
    agdhole  
       2020-01-13 13:58:59 +08:00 via Android
    类 型 安 全
    hc181533609
        19
    hc181533609  
       2020-01-13 14:00:42 +08:00
    说太多 也没什么用,很多写后台的人比较习惯这种写法,这样他们使用 js 成本更低,至于工程化 维护性,这些前期架构好定好加上 review,后期自然差不了。
    HongJay
        20
    HongJay  
       2020-01-13 14:01:28 +08:00
    类似于 kotlin 之于 java ?
    hc181533609
        21
    hc181533609  
       2020-01-13 14:01:30 +08:00
    至于类型安全 之前 也有 flow 其他 也不太懂 我的了解 大概 就这些吧
    cheneydog
        22
    cheneydog  
       2020-01-13 14:03:25 +08:00
    FaceBook 出了个 叫 Reason 的语言,对标 Typescript,体验了下感觉还行。
    mwVYYA6
        23
    mwVYYA6  
       2020-01-13 22:48:34 +08:00 via Android
    ts 写成狗屎的也不少呀,问题根本不在于有没有类型检查,而是三层三元表达式,n 个循环嵌套这种令人发狂的代码。这种代码不管用 xx 语言都是狗屎。
    ts 仅仅加了个类型检查而已,两层嵌套后类型还找不到了
    kwrush
        24
    kwrush  
       2020-01-16 06:58:26 +08:00
    @shunfy 类型检查的好处多多,尤其团队开发和前后端分离
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2524 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 10:04 PVG 18:04 LAX 03:04 JFK 06:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86