一. Typescript中的函数
- ES5中定义函数的方法
// 函数声明
function run() {
return 'run'
}
// 函数表达式(匿名函数)
const fn = function () {
return 'run'
}
- TS中定义函数的方法
// 如果返回值的类型不为字符串则报错
function fn():string {
return 'run'
}
// 如果返回值的类型不为数字则报错
const fn = function():number {
return 123;
}
- Ts定义方法的传参
// 函数声明
function getInfo(name:string , age:number):string {
return '${name} ---- ${age}'
}
getInfo('张三' , 20); // 注意参数的类型,传错则报错
// 函数表达式(匿名函数)
const getMessage = function (name:string , age:number):string {
return '${name} ---- ${age}'
}
getMessage('李四' , 20)
- 定义没有返回值的方法
function run():void {
console.log('没有返回值的方法,只打印这句话');
}
- 方法的可选参数
Es5 里面的方法的实参和形参可以不一样,但是Ts中必须是一样的,如果不一样就需要配置可选参数。
Ts中的可选参数必须配置到参数的最后面。
function getInfo(name:string , age?:number):string {
if(age) {
return `${name} ---- ${age}` ;
}else {
return `${name} -----${age}`
}
}
alert(getInfo('zhangsan')) // 因为age这个参数加了一个?所以这个参数可传可不传
- 方法的默认参数
function getUserInfo(name:string , age:number=20):string {
return `${name} -----${age}`;
}
getUserInfo('zhangsan'); // 如果这里传入了age,则覆盖默认参数。
- 方法的剩余参数
俗称三点运算符 …
function sum(...args:number[]):number {
var sum = 0;
for(let i = 0 ; i<args.length ; i++) {
sum+=args[i]
}
return sum;
}
alert(sum(1,2,3,4))
8.函数重载
Ts中的重载:通过为同一个函数提供多个函数类型定义来实现多种功能的目的。
function getInfo(name:string):string; // 1
function getInfo(age:number):string; // 2
function getInfo(str:any):any {
if(typeof str ==='string') {
return '我叫:' + str;
}else {
return '我的年龄是:' + str;
}
}
getInfo('张三'); // 执行 方法1
getInfo(20); // 执行 方法2