TypeScript笔记
4. TypeScript => 函数
// 1. 定义函数的方法
// 需要定义返回值的类型 没有返回值 ():void类型
// 参数需要定义类型
// 函数声明法
function run(name: string, age: number): string {
return 'run';
}
// 匿名函数
var fun = function (): number {
return 123;
}
// 2. 配置可选参数
function getInfo(name: string, age?: number): string {
if (age) {
return `${name} --- ${age}`;
} else {
return `${name} --- 年龄保密`
}
}
// 3. 配置默认参数
function getInfo1(name:string, age:number = 20){
return `${name} --- ${age}`;
}
// 4. 剩余参数 ...三点运算符
function sum(a: number, ...result: number[]): number {
let sum = a;
for (let i = 0; i < result.length; i++) {
sum += result[i];
}
return sum;
}
// 5. 函数重载
// java中方法的重载: 重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况。
// ts中的重载:通过为同一个函数提供多个函数类型定义来实现多种功能的目的。
// ts为了兼容es5 es6 重载的写法和java中的有区别。
function getUserInfo(name: string): string;
function getUserInfo(age: number): number;
function getUserInfo(str: any): any {
if (typeof str === 'string') {
return '我叫'+str;
}else{
return '我的年龄是'+str;
}
}
// console.log(getUserInfo('李诞')); => 我叫李诞
// console.log(getUserInfo(20)); => 我的年龄是20
// console.log(getUserInfo(true));//错误写法
// 6. 箭头函数 es6 箭头函数不绑定this 箭头函数不绑定arguments 箭头函数没有prototype属性 箭头函数不能用于构造函数 箭头函数无法使用 call()或 apply()来改变其运行的作用域