开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
什么是Typescript
Typescript 是 javascript 的一个超集,主要提供了类型系统和对 es6 的支持,它由 Microsoft 开发,代码开源于 Github 上。Typescript 是 javascript 的类型超级,它可以编译为纯 javascript。编译出来的 javascript 可以运行在任何浏览器上。Typescript 编译工具可以运行在任何服务器和任何系统上。Typescript 是开源的。
TypeScript 的优点
TypeScript 增加了代码的可读性和可维护性
- 类型系统实际上是最好的文档,大部分的函数看看类型的定义就知道如何使用了。
- 可以在编译阶段就发现大部分的错误,这总比在运行时出错好。
- 增强了编译器和 IDE 的功能,包括代码补全,接口提示,跳转到定义,重构等。
TypeScript 非常包容
- Typescript 是 javascript 的超集,.js 文件可以直接重命名为 .ts 即可。
- 即使不显示的定义类型,也能够自动做出类型推导。
- 可以定义从简单到复杂的几乎一切类型。
- 兼容第三方库,即使第三方库不是用 TypeScript 写的,也可以编写单独的类型文件供 TypeScript 读取。
TypeScript 拥有活跃的社区
- 大部分第三方库都有提供给 Typescript 的类型定义文件。
TypeScript 的缺点
不是真正的静态类型
因为需要兼容 JavaScript 的缘故,TypeScript 的类型是可选的。你可以用 any 类型,也可以进行类型的强制转换,所以如果你在代码中写了太多这样的东西,甚至将其变成 AnyScript。那么实际运行还是可能会出现一些类型上的问题。
有一定的学习成本
需要理解接口,泛型,类,枚举类型等前端工程师可能不是很熟悉的概念。
需要写更多的代码
主要是类型和接口声明的部分,但能够抵消掉你 `debug` 类型问题的时间,总体看还是物超所值的。另外,编译后类型和接口声明都会被移除,相比直接写 `JavaScript`,体积不会明显更大。
需要编译
浏览器和 Nodejs 并不支持 TypeScript,所以多了一步编译操作。对于普通项目来说通常不长,其实还好。但如果你用来写脚本的话,就需要多安装 tsc 编译工具,还要配置好 tsconfig.json 文件,还是有点麻烦。