文章目录
TypeScript 介绍
TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译
- 安装 TypeScript,会提供一个 tsc 工具执行相应命令
- tsc -h 查看这个工具有哪些命令
- 之后新建一个 ts 文件,执行 tsc ts文件名 命令将 TypeScript 转换为 JavaScript 代码,当前目录下就会生成一个与 ts 同名的 js 文件,使用 node js文件名 来执行 js。
(可以同时编译多个 ts 文件:tsc file1.ts file2.ts file3.ts)
(如果 ts 代码修改后,要重新编译,不用删除之前生成的 js 文件,会自动更新)
分号在 TypeScript 中是可选的,建议使用; 几条语句在同一行必须使用分号,不然会报错。
TypeScript 是一种面向对象的编程语言(对象和类)
TypeScript 包含的数据类型:
-
any: 任意类型。声明为 any 的变量可以赋予任意类型的值。使用场景:
- 1、变量的值会动态改变时,比如来自用户的输入,任意值类型可以让这些变量跳过编译阶段的类型检查
- 2、改写现有代码时,任意值允许在编译时可选择地包含或移除类型检查
- 3、定义存储各种类型数据的数组时
-
number: 数字类型。双精度 64 位浮点值。它可以用来表示整数和分数
-
string: 字符串类型。一个字符系列,使用单引号(’)或双引号(")来表示字符串类型。反引号(`)来定义多行文本和内嵌表达式
-
boolean
-
数组类型:声明变量为数组,两种方式:
- ① 在元素类型后面加 [],如:
let arr: number[] = [1, 2];
- ② 使用数组泛型:
let arr: Array<number> = [1, 2];
- ① 在元素类型后面加 [],如:
-
元组:元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同
let x: [string, number]; x = ['白醭飙尘', 1]; // 运行正常 x = [1, '白醭飙尘']; // 报错 console.log(x[0]); // 输出 白醭飙尘
-
enum:枚举。定义数值集合
enum Color { orange, blue, yellow, red} let c : Color = Color.red console.log(c); // 3
-
void:用于标识方法返回值的类型,表示该方法没有返回值
getName():void { console.log("白醭飙尘") }
-
null 和 undefined:null 类型只有 null 一个值,表示对象值缺失,对象空引用; undefined 用于初始化变量为一个未定义的值
-
never:是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。这意味着声明为 never 类型的变量只能被 never 类型所赋值,在函数中它通常表现为抛出异常或无法执行到终止点(例如无限循环)
一些注意的点
-
const getValue = () => { return 0 } enum List { A = getValue(), B = 2, // 此处必须要初始化值,不然编译不通过 C } console.log(List.A) // 0 console.log(List.B) // 2 console.log(List.C) // 3
A 的值是被计算出来的。注意注释部分,如果某个属性的值是计算出来的,那么它后面一位的成员必须要初始化值。
-
全局声明变量,变量名不要使用 name,否则会与 DOM 中的全局 window 对象下的 name 属性出现重名
-
短路运算符(&& 与 ||)
&& 前面的表达式为 false 时,其后面的表达式就不会再执行了
同理,|| 前面的表达式已经为 true 时,其后面的表达式也不会再执行 -
instanceof 运算符用于判断对象是否为指定的类型
-
for…in 语句用于一组值的集合或列表进行迭代输出
for