通过如下代码我们实现了一个返回值为number类型的方法,同时我们也对返回值和参数进行了约束
function funcType(name:string,age:number):number{
return age;
}
var ageNum:number=funcType("张三",18)
如果说在我们参数不确定的情况下我们可以通过如下代码进行创建
function funcType1(name:string,age:number,sex?:string):number
{
return age;
}
var ageNum1:number=funcType1("张三",18,"男")
var ageNum2:number=funcType1("张三",18)
对方法进行添加默认值
function funcType2(name:string="张三",age:number=18):number{
return age;
}
var funcType3=function(name:string,age:number):number
{
return age;
}
如上代码片段是我们之前创建的函数
那么我们还可以对变量进行约束
var funcType4:(name:string,age:number)=>number=function(name:string,age:number):number
{
return age;
}
下面我们也可以使用接口的形式进行约束
interface funcType5{
(name:string,age:number):number
}
var funcType6:funcType5=function(name:string,age:number):number{
return age;
}
通过如下代码我们可以实现一个联合类型函数,当然这可以采用重载的方式 当我们的参数是number类型时我们的返回值是number类型,当我们的参数是string类型时我们的返回值是string类型,这一块具体在我们实际业务中可以根据实际需求进行相应修改
function getVal(val:number):number;
function getVal(val:string):string;
function getVal(val:string|number):number|string{
return val;
}
let a=getVal(1)
let a1=getVal("1")