简介
什么是 TypeScript?
- 添加了类型系统的 JavaScript,适用于任何规模的项目。 // 这是官网的定义
- 静态类型,强类型的语言。
- 完全兼容 JavaScript,不会修改 JavaScript 运行时的特性。
- 可以编译为 JavaScript,然后运行在浏览器、Node.js 等任何能运行 JavaScript 的环境中。
- 拥有很多编译选项,类型检查的严格程度由你决定。
- 可以和 JavaScript 共存。
- 增强了编辑器(IDE)的功能,提供了代码补全、接口提示、跳转到定义、代码重构等能力。
- 拥有活跃的社区,大多数常用的第三方库都提供了类型声明。
- 与标准社区同步发展,符合最新的 ECMAScript 标准(stage3)。
类型系统
-
按【类型检查的时机】分类,可以分为动态类型和静态类型。
- 动态类型是指在运行时才会进行类型检查。
- 静态类型是指编译阶段就能确定每个变量的类型。
-
按【是否允许隐式类型转换】分类,可以分为强类型和弱类型。
标准
一个新的语法从提案到变成正式标准,需要经历一下几个阶段:
- Stage 0:展示阶段,仅仅提出了讨论、想法,尚未正式提案。
- Stage 1:征求意见阶段,提供抽象的 API 描述,讨论可行性,关键算法等。
- Stage 2:草案阶段,是用正式的规范语言精确描述其语法和语义。
- Stage 3:候选人阶段,语法的设计工作已完成,需要浏览器、Node.js 等环境支持,搜集用户的反馈。
- Stage 4:定案阶段,已准备好将其添加到正式的 ECMASscript 标准中。
安装 TypeScript
命令行安装
npm i -g typescript
编译 TypeScript 文件
tsc index.ts
Tips
- TypeScript 只会在编译时对类型进行静态检查,如果发现有错,编译的时候就会报错。
- TypeScript 编译的时候即时报错了,还是会生成编译结果,如不需要可以在配置文件中修改,配置 noEmitOnError 既可。
类型
JavaScript 的类型分为 原始数据类型(基本数据类型)和对象类型(引用类型) 原始数据类型:Boolean(布尔值)、Number(数值)、String、Null、Undefined、Symbol、BigInt。 引用类型:Object