typescript
为JavaScript
函数添加了额外的功能:
- 指定返回值类型
- 指定传参的类型
- 可选参数和默认参数
- 剩余参数
- 重载
指定返回值类型
function getInfo():number{
return 123;
}
console.log(getInfo()); //123
上面代码定义了一个返回值类型为数字的函数
指定传参的类型
function getInfo(num1:number,num2:number):number{
return num1 + num2;
}
console.log(getInfo(1,4)); //5
可选参数和默认参数
JavaScript
里面的方法实参和形参可以不一样,但是typescript
中必须一样,如果不一样就必须配置可选参数(在参数后面紧跟一个问号)。
function getInfo(name:string,age?:number):string{
if(age){
return `${name} --- ${age}`;
}else{
return `${name} --- 年龄保密`;
}
}
console.log(getInfo(1,4)); //5
可选参数需要写在最后面
ES6
和typescript
中都可以设置默认参数。
function getInfo(name:string,age:number=20):string{
return `${name} --- ${age}`;
}
console.log(getInfo(1,4)); //5
上面代码给
age
设置了默认参数20
用接口定义函数的形状
interface SearchFunc {
(source: string, subString: string): boolean;
}
let mySearch: SearchFunc;
mySearch = function(source: string, subString: string) {
return source.search(subString) !== -1;
}
剩余参数
当你并不知道会有多少参数传递进来,可以使用ES6中的点运算符。
function sum(name:string,...result:number):string{
let sum = 0;
for(let i = 0;i<result.length;i++){
sum+=result[i]
}
return `${name} --- ${sum}`;
}
console.log(sum('加法运算',1,2,3,4)); // 加法运算 --- 11
剩余参数要写在最后面
重载
java
中方法的重载:重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况。
typescript
中的重载:通过为同一个函数提供多个函数类型定义来实现重载。
function getInfo(name:string):string;
function getInfo(age:number):string;
function getInfo(str:any):any{
if(typeof str === 'string'){
return '我叫' + str;
}else{
return '我的年龄是:' + str;
}
}
console.log(getInfo('张三')); //我叫张三
console.log(getInfo(12)); //我的年龄是:12
标签:function,return,函数,getInfo,number,参数,string
From: https://www.cnblogs.com/ewar-k/p/17875765.html