Typescript 你了解吗?来谈谈它优缺点

672 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

什么是Typescript

Typescriptjavascript 的一个超集,主要提供了类型系统和对 es6 的支持,它由 Microsoft 开发,代码开源于 Github 上。Typescriptjavascript 的类型超级,它可以编译为纯 javascript。编译出来的 javascript 可以运行在任何浏览器上。Typescript 编译工具可以运行在任何服务器和任何系统上。Typescript 是开源的。

TypeScript 的优点

TypeScript 增加了代码的可读性和可维护性

  1. 类型系统实际上是最好的文档,大部分的函数看看类型的定义就知道如何使用了。
  2. 可以在编译阶段就发现大部分的错误,这总比在运行时出错好。
  3. 增强了编译器和 IDE 的功能,包括代码补全,接口提示,跳转到定义,重构等。

TypeScript 非常包容

  1. Typescript 是 javascript 的超集,.js 文件可以直接重命名为 .ts 即可。
  2. 即使不显示的定义类型,也能够自动做出类型推导。
  3. 可以定义从简单到复杂的几乎一切类型。
  4. 兼容第三方库,即使第三方库不是用 TypeScript 写的,也可以编写单独的类型文件供 TypeScript 读取。

TypeScript 拥有活跃的社区

  1. 大部分第三方库都有提供给 Typescript 的类型定义文件。

TypeScript 的缺点

不是真正的静态类型

因为需要兼容 JavaScript 的缘故,TypeScript 的类型是可选的。你可以用 any 类型,也可以进行类型的强制转换,所以如果你在代码中写了太多这样的东西,甚至将其变成 AnyScript。那么实际运行还是可能会出现一些类型上的问题。

有一定的学习成本

需要理解接口,泛型,类,枚举类型等前端工程师可能不是很熟悉的概念。

需要写更多的代码

主要是类型和接口声明的部分,但能够抵消掉你 `debug` 类型问题的时间,总体看还是物超所值的。另外,编译后类型和接口声明都会被移除,相比直接写 `JavaScript`,体积不会明显更大。

需要编译

浏览器和 Nodejs 并不支持 TypeScript,所以多了一步编译操作。对于普通项目来说通常不长,其实还好。但如果你用来写脚本的话,就需要多安装 tsc 编译工具,还要配置好 tsconfig.json 文件,还是有点麻烦。