TS学习

发布时间 2023-04-22 12:13:41作者: my日常work

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}  // ? 表示可选属性