@types
PART1 typescript介绍
什么是ts?
TypeScript 是微软开发一款开源的编程语言,本质上是向 JavaScript 增加静态类型系统。它是 JavaScript 的超集,所有现有的 JavaScript 都可以不加改变就在其中使用。它是为大型软件开发而设计的,它最终编译产生 JavaScript,所以可以运行在浏览器、Node.js 等等的运行时环境。
ts能做什么?
首先TS的定位是静态类型语言,而不是类型检查器(对比flow)。 从开发工具提供的能力看也不仅仅是类型检查,很直观的就是Intellisense over Compilation Error,当一段代码有问题(比如少写了字母)时,写完马上就会有红色波浪线提示,而不是等到编译的时候才告诉你哪一行有问题。 因此使用TS提供的类型系统+静态分析检查+智能感知/提示,使大规模的应用代码质量更高,运行时bug更少,更方便维护。
PART2 @types介绍
什么是@types?
@types用来统一管理第三方库的声明文件。当我们在用typescript进行开发时,会遇到很多类型定义的问题。比如说当我们npm install完一个包,却发现import的时候ts报错,说找不到这个包。其原因是这个包内不含类型声明,所以ts并不能识别这个模块。这个时候我们可以去通过npm install @types/包名 来下载这个包的声明文件,从而解决ts的报错。
比如说我们在下载classnames不含类型声明文件,那我们就可以通过npm install @types/classnames来下载classnames的声明文件。所有下载的声明文件都会保存在上图所示的路径下。
关于声明文件可以踩这个链接进去详细了解: https://www.tslang.cn/docs/handbook/declaration-files/introduction.html