1.函数
function run(): string {
return "123"; //必须是字符串
}
let fn = function(): string {
return "123"; //必须是字符串
};
2.ts定义传参
function run(name: string, age: number): string {
return `name:${name},age:${age}`;
}
run("lj", 123); //必须类型对应
3.ts的函数的可选参数,加个?,es5中实参和形参可以不一样,ts中不行,可选参数必须在最后面
function run(name: string, age?: number): string {
if (age) {
return `name:${name},age:${age}`;
} else {
return `name:${name},age:----`;
}
}
run("lj", 123); //必须类型对应
run("lj"); //可以不传
4.ts函数的默认参数
function run(name: string = "lujie", age: number = 20): string {
if (age) {
return `name:${name},age:${age}`;
} else {
return `name:${name},age:----`;
}
}
console.log(run( undefined,123)); //name默认值是lujie
console.log(run("lj")); //可以不传number,默认是20
5.剩余参数
function run(a: number = 1, ...result: number[]): number {
let sum = a;
for (let val of result.values()) {
sum += val;
}
return sum;
}
console.log(run(1, 2, 3, 4, 5)); //结果是15
6.ts函数重载
function run(name: string): string;
function run(age: number): string;
function run(str: any): any {
if (typeof str === "string") {
return `我叫${str}`;
} else {
return `我的年龄是${str}`;
}
}
console.log(run("123")); //我叫123
console.log(run(100)); //我的年龄是100
function run(name: string): string;
function run(name:string,age: number): string;
function run(name: any,age?:any): any {
if (age) {
return `我叫${name},我今年${age}`;
} else {
return `我叫${name}`;
}
}
console.log(run("lj",18)); //我叫lj,我今年18
console.log(run('lj')); //我叫lj