TypeScript------------------复杂函数的类型补充学习
//有属性的函数类型定义方法 interface FunctionWithAttributes { attr:string; (str:string):void; } const test:FunctionWithAttributes (str:string){ console.log(str); } test.attr attributes; //构造函数的类型如何定义 interface ClassWithConstructor { new (str:string):void; } function testOne(outerClass:ClassWithConstructor) { const instance new outerClass(new); } class TestOne { name:string; constructor(str:string) { this.name str; } } testOne(TestOne); //如何写Date的类型 interface DateType{ new ():Date; (dateString:string):string; } //函数和泛型 function getArrayFirstItemType(arr:Type[]):Type { return arr[0]; } const numberArr5 [1,2,3]; const result getArrayFirstItem(numberArr5); const numberArr5One [1,2,3]; const resultOne getArrayFirstItem(numberArr5One); //函数重载 //定义 function getString(str:string):string; function getString(str:string,str1:string):number; //实现 function getString(str:string,str1?:string) { if(typeof str1 string) { return (str str1).length; } return str; }