Typescript入门

67 阅读2分钟

Typescript入门|青训营笔记 这是我参与【第四届青训营】笔记创作活动的第2天

  • Javascript:动态类型、弱类型语言(执行时才进行类型匹配)
  • Typescript:静态类型、弱类型语言(需要先走一次编译流程然后才能执行)、兼容所有Js特性、支持共存
  • 静态类型:可读性增强、可维护性增强(暴露出大部分错误)
  1. 基本语法:
  • 字符串(定义方法):const q:string='string';
  • 数字:const w:number=1;
  • 布尔值:const e:boolean=true;
  • null:const r:null=null;
  • undefined:const t: undefined=undefined;
  1. 对象类型
  • I开头表示一个类型
  • 函数声明类型代码: function add(x:number,y:number): number{ return x+y; }
  1. 数组类型
  • 类型+方括号表示:
  • type IArr1 = number[];
  • 泛型表示:
  • type IArr2 = Array<string|number|Record<string,number>>;
  • 元祖表示:
  • type IArr3 = [number,number,string,string];
  • 接口表示:
  • interface IArr4{[key:number]:any;}
  • const arr1:IArr1=[1,2,3,4,5,6,7,8];
  • const arr2:IArr2=[1,2,'3','4',{a:1}];
  • const arr3:IArr3=[1,2,'3','4'];
  • const arr4:IArr4=['string',()=>null,{},[]];
  • 空类型,表示无赋值、任意类型,是所有类型的子类型、枚举类型,支持枚举值到枚举名的正、反向映射
  • 泛型约束:限制泛型必须符合子字符串
  • 报错:类型“number"的参数不能付给类型”string"的参数
  • 未指定类型时,result类型为{}*/
  • 通过as关键字,断言result类型为正确类型
  • 允许指定字符串,数字必须是固定的值
  1. 高级类型
  • 高级类型把普通类型解决方案变得更优雅
  • 联合/交叉型列表:为书籍列表编写类型,类型声明繁琐,存在较多重复
  • 联合类型:联合类型表示一个值可以是几种类型之一
  • 交叉类型:多种类型叠加到一起成为一种类型,它包含所需的所有类型的特性(公共对象子集只需要写一次)公共部分和未公共部分做一个交叉
  • 类型保护与类型守卫
  • 高级类型