TypeScript 在JS的基础上添加类型概念,一个变量生下来是什么变量就是什么变量
TS不能被JS解析器直接执行 xxx.ts不能直接执行 使用ts编译成js
TS增加了什么?
1. TS可以使用变量类型 tuple enum interface abstractclass
2. 完全支持JS 支持ES新特性
3. 添加ES不具备的新特性
4. 丰富的配置选项 设置TS编译为ES几版本
TS支持强大的开发工具
TS解析器使用Node js编写的,需要安装Node JS
使用npm 全局安装typescript解析器 tsc命令查看是否安装成功
js 一个变量可以时字符串或者数字
ts可以声明指定类型变量 let a: number string// a 类型只能是数字 编译为任何版本js
lec c: boolean = true 变量的声明和赋值同时进行,可以自动对变量类型检测
// JS中的函数是不考虑参数的类型和个数
TS类型,
number 1,-33,2.5 任意数字
string 任意字符串
boolean 布尔值
字面量 其本身 let a 10 一般不用 "male" | "female" let c: boolean | string
any 任意类型 不声明类型,系统默认使用any
unknown 类型安全的any unknow 类型变量不能赋值给 其他变量 if(typeof e === "string"){ s = e;}
void 空值(undifined) 没有值或者undifined
never 没有值 不能是任何值
object {name: "孙悟空"} 任意JS对象
array [1, 2, 3] 任意JS数组
tuple [4, 5] 元素,TS新增类型,固定长度数组
enum enum{A, B} 枚举,TS新增类型
s = e as string; unkonow可以直接赋值给string 类型
s = <string> e;
let b: {name: string, age?: number} // ? 表示可选属性