环境搭建
typescript 安装
npm install typescript -g // 全局安装ts
目录结构
tsconfig.json配置内容
{
"compilerOptions": {
"target": "ES2015", // 编译的目标标准
"outDir": "./dist", // 编译后的文件输出目录
"watch": true // 进入监听模式,文件发生变动立即重新编译
},
"include": ["./src/**/*"] // 编译src目录下的所有目录及文件
}
联合类型
- 联合类型也可称为多选类型,用于标注一个变量的类型为多个类型之一
- 标注语法:
变量: 类型一 | 类型二
- 例如,下面
value
的类型被限制为number
或string
,其他类型将会报错
交叉类型
- 交叉类型也称为合并类型,把多种类型合并到一起成为一种新的类型
- 标注语法:
变量: 类型一 | 类型二
- 如下,
obj3
的类型为o1
跟o2
的合并
字面量类型
- 标注变量的取值只能是给定的确切值
- 标注语法:
变量: 固定值1 | 固定值2 | ...
- 如下,
direction
的取值只能是固定的几个值
类型别名
- 用于给类型起另一个名字,与原类型具有相同的功能
- 标注语法:
type 新的类型名 = 类型
- 如下,给上述的字面量类型起了个更简洁的别名,使得代码更加清晰
类型推导
typescript
可以根据上下文自动推断出变量类型,因此有的时候我们不必指定变量的类型- 如下图所示,
typescript
根据参数类型及加法操作推断出返回值是number
,因此r
也是number
类型
类型断言
- 有的时候,我们比
typescript
更清楚某个变量是什么类型,因此可以主动断言 - 断言语法:
变量 as 类型
或<类型>变量
- 如下,我们主动告诉
typescript
,img
变量是HTMLImageElement
类型,因此可以访问src
属性。另外类型断言是一次性的,只在当前语句生效