介绍
1.什么是 typescript, js 的超集 2.为什么需要 typescript ,有类型约束 适合中大型项目,很方便
环境搭建
- npm i typescript -g tsc –version 能看到版本号就是安装好了
- tsc –init 会产生一个 tsconfig.json 文件
- “outDir” : “./dist”
- “rootDir”: “./src”
- 在 src .ts 下写代码
- dist/运行.ts 文件
类型的约束
- string \ number \ boolean \ null :object 类型,代表空,代表一个空对象指针 \ undefined : undefined 类型 未定义 \ any 任何类型,一维,放弃了类型的约束
自动类型推断
- a=’abc’
数组的约束
- let arr:number[] =[1,2,3,4];
- let arr2:Array
=[5,6,7];
元组 Tuple 约束数组中的每一个元素[number,string] 类似如此
- let arr3:[boolean,string]=[false,’www’];
any 任何类型,意味放弃了类型的约束
void 表示没有任何返回值
联合类型
- | let id= string|number;
交叉类型
- 1、interface IPerson {
id:number,
name:string
}
- 2、interface ICoder{
lang:string
}
- 3、type IDev = IPerson & ICoder;
- 4、let zst:IDev ={id:111,name:’zst’,lang:’js’};
枚举
1 | enum route { |
断言 assert 变量 as 类型 <类型>变量
1 | function getLength(a:string|number){ |
泛型 接口泛型 函数泛型
1 | function fun<T>(x: T): T { |
class
1 | 1.类的构造函数的重载 |
1 | interface IProgramer extends IPerson { |
函数的类型约束
1 | function 函数的名字(参数,类型.....):返回值的类型{ |
修饰器模式:设计模式 。 给代码打扮
- 函数和 class 类 :属性 方法(功能)
- 添加功能 (函数形式去添加功能)
1 | //1.装饰器本身就是一个函数 |
- vue ts 修饰器模式实现
如果 ts 中使用 es6 的东西,tsconfig 中的“target”改成 es6
建立能使用类型的地方,不要用 any,any 在你不知道类型的时候选择,放弃了约束
对象的约束要用 interface 而不是 object
接口和类的结合使用
1 | interface IGo{ |
I'm so cute. Please give me money.
- Post link: https://blog.gaocaipeng.com/2019/11/01/gf73ts/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.