black11black
V2EX  ›  问与答

有大佬能介绍一下什么是 TypeScript 吗,相比 Javasript 优势在哪里?

  •  
  •   black11black · Aug 27, 2020 · 1282 views
    This topic created in 2261 days ago, the information mentioned may be changed or developed.

    如题,寻 js 大佬理性讨论。

    我原本是对 js 的语言设计有成见的,但是最近越发有从后端走向全干的发展,慢慢学起来感觉写的也顺手了

    前几天看到有人讨论 typescript,好像 ts 很高端,js 以后要被时代淘汰一样。我很好奇就想问问,虽然听说过很多次了,但是这东西到底是干嘛的?

    百度一搜全是类似 ts 是 js 的超集这种没营养的话,我想知道既然已经有 js 了,为什么还要设计 ts 这个东西呢,它的应用场景是什么? js 升级到 es6 以后老实说原本语言设计上一些比较蛋疼菊紧的地方已经消除掉了,起码我个人写起来直观感受基本上没有什么阻滞感,很丝滑,循环也不用加闭包搞定了,面向对象的部分也堪用,

    根据我的理解,ts 在 js 的基础上加上了固定类型约束,单纯这点上可以看出很难说上是语法抽象性的升级,并不是说我用 ts 以后语言的抽象描述能力更强了。另一方面 ts 似乎最终还是搞到 js 解释器里执行的,也并非用魔法变成了二进制,所以加固定类型约束的目的似乎也不是为了提高执行效率。

    所以总的来说问题还是,ts 这个东西到底是设计来干嘛的,相比传统有什么优势,现在它有什么应用场景? js 本身是一门非常轻的语言,很短的时间就能掌握,(我本人没用 js 做过后端项目,我觉得 js 的模组化设计的就是一场灾难,所谓短时间掌握只是在基础应用范围内),对于我这种没写过一句 ts 的外行人,ts 是否也值得花时间掌握呢?

    GeruzoniAnsasu
    GeruzoniAnsasu
    Aug 27, 2020
    1
    难到你从来没体会到过静态类型语言的好处?
    fuermosi777
    fuermosi777
    Aug 27, 2020
    2
    ts 这个东西到底是设计来干嘛的?
    在 js 基础上加上类型限制。你提到的 js 升级到 es6 之后的好处只是在语言层面上的。ts 所能提供的好处则是在开发层面上的。你能想象你加入一个开发团队,准备在一个有几百个模块的大型 web 应用上添加一个新的 feature,然后拿到一个巨大的 model object 却对它是什么、长什么样子全然不知时所面临的窘境吗?

    相比传统( js )有什么优势?
    有类型限制

    有什么应用场景?
    适用于任何 js 使用场景,但对于团队和大型 web 应用效果拔群

    对于我这种没写过一句 ts 的外行人,ts 是否也值得花时间掌握呢?
    值得
    black11black
    black11black
    OP
    Aug 27, 2020
    3
    @GeruzoniAnsasu 工程化好处当然重要,但像上面说的仅做提示就非常不可理解。像 java 的类型是出名的 unsound 引发了各种问题,但结合解释器需要就让人没觉得有什么奇怪。如果单纯是一个 js 版的 type hint,不觉得很鸡肋吗?
    black11black
    black11black
    OP
    Aug 27, 2020
    4
    @fuermosi777 查了查,似乎要接入前端框架需要踩坑,并不能无痛。感觉上是单纯依团队需求更改的选项。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1406 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:49 · PVG 06:49 · LAX 14:49 · JFK 17:49
    ♥ Do have faith in what you're doing.