关于javascript:TypeScript函数

9次阅读

共计 1313 个字符,预计需要花费 4 分钟才能阅读完成。

TypeScript 中文文档

一 ts 中函数的定义

function getInfo1 (name:string,age:number):string{return ` 学生 ${name}往年 ${age}岁 `
}

let getInfo2 = function(name:string,age:number):string{return ` 学生 ${name}往年 ${age}岁 `
}

在 ts 中一个残缺的函数类型包含 参数类型 返回值类型 , 如果函数没有返回值: 函数的返回值应该设置为 void

二 可选参数

可选参数必须位于必选参数的前面。

function getStudent(name:string, id?:string) : string{if(id){return ` 学生 ${name}的 id 是: ${id}`;
    }else{return ` 学生 ${name}没有 id`;
    } 
}

console.log(getStudent('小红','wyd12d0xs2lkh') ); // 学生小红的 id 是: wyd12d0xs2lkh
console.log(getStudent('小刚') );  // 学生小刚没有 id

三 默认参数

function getFullName(firstName:string, lastName:string = '小明') :string{return firstName + lastName;}
console.log(getFullName('张','良') ); // 张良
console.log(getFullName('张') ); // 张小明

如果默认参数在必选参数后面,那么只有传入 undefined 时才会获得默认值

function getFullName(lastName:string = '小明',firstName:string) :string{return firstName + lastName;}
console.log(getFullName('小花','李') );   // 李小花
console.log(getFullName( undefined,'张') );  // 张小明

四 残余参数

function sum(...result:Array<number>) :number{console.log( result); // [1, 2, 3, 4, 5]
    return result.reduce((pre:number,next:number):number => {return pre + next;});
}

sum(1,2,3,4,5); // 15

五 函数的重载

函数重载的定义: 在 ts 中通过为同一个函数 提供多个函数类型定义 实现多种性能的目标。

function setInfo(title:string):string;
function setInfo(num:number):number;

function setInfo(value:any):any{if(typeof value === 'string'){return ` 这是一个字符串:${value}`
    }else{return ` 这是一个数字:${value}`
    }
}

setInfo(10); // 这是一个数字:10
setInfo('张三'); // 这是一个字符串:张三

正文完
 0