TypeScript = Type + JavaScript
是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,为普通的js文件加上类型检测,在静态文件当中编写时发现问题并解决。
TS Playground
他包含了js的基本类型:number,string,null,undefined,bigint,symbol,boolean,object
const a:number = 1const b:string = '1'const c:null = nullconst d:undefined = undefinedconst e:bigint = 123456nconst f:symbol = symbol('hallo')const g:boolean = falseconst x:object = {} //const x:Array<number | string | boolean> = [1,'2',false] //泛型//函数const add = (a:number,b:number):number => a+bconst add = (a:number,b:number) => number = (a,b) => {a+b}//type声明type ADD = {(a:number,b:number) => number}const add:Add = (a,b) => {a+b}//interface 声明 使函数有多个属性interface AddWithProps{(a:number,b:number):numberxxx:string}const add:AddWithProps = (a,b) => a + badd.xxx = '123'
还额外有一些TS额定类型:any,unknow,void,never,tuple,enum
//nevertype a = number & stringllet b:a = 123//unknowtype C = {name:string}let a:unknow = //JSON.parse('{"name":"Jerry","age",:"18"}')(a as C).name//使用前不知道类型//void 一般指函数返回一个空let print:() => void = function(){console.log('hallo')}//断言let p:string = '123'(p as any).push(456)//元组tuplelet p:[number,number] = [100,200](p as any).push(456)//枚举enumenum Color {Red, Green, Blue}let c: Color = Color.Green; //1//按下标输出
npm install typescript --save-dev
//yarn add --dev typescript
//pnpm i -g typescript
第三方库的.d.ts文件可以快速查找函数的接受类型,还有很好的代码提示功能
联合类型’|’和交叉类型’&’
//联合类型type A ={name:string;age:number}type B = {name:string;gender:string}const a = (x : A | B)=>{if(typeof x === 'number'){x.toFixed()}else{}}//交叉类型type A = {name:string} & {age:number} //用于交叉复杂类型const a:A = {name:'jack',age:23}
泛型
//广泛的类型type A<T> = T | T[]type A<T> = (a:T,b:T) =>Tconst ADD:A<number> = (a,b)=> a + bconst ADD:A<string> = (a,b)=>a + ' ' + b
React 的 FunctionComponent泛型
重载
function SUM (a:number,b:number):number;function SUM (a:string,b:string):string;function SUM (a:any , b:any):any {//两种判断方式//if(arguments.length===1)//if(typeof a === 'number')}


