基础使用
函数主要用于约束参数和返回值类型
function sum (a: number, b: number): number{
return a + b
} // 参数括号后面表示约束返回值类型为number类型,若是void表示没有返回值,never表示函数永远不会结束
function add (a: number, b: number): never{
while(true){
xxxxx
}
let c: number = a + b //这行代码不会执行并且该函数无限循环不会结束
}
可选参数
函数使用时,参数b和c可以不传,并且可选参数不能是第一个,必须是最后几个,即必选参数不能处于可选参数后面
funtion sum(a:number, b?:number, c?:number){
if (b && c) {
return a + b + c
}
return a
}
sum(20)
参数默认值
参数默认值和js一样,有默认值的参数必定是可选参数
function sum(a: number, b?: number, c?: number, d: number=20): number {
if (b && c) {
return a + b + c
}
return a + d
}
console.log(sum(10));
函数约束
使用combine函数时,必须要求两个参数要么都是string,要么都是number
function combine(a: string , b: string): string
function combine(a: number, b: number): number
function combine(a: string | number, b: string | number): string | number{
if (typeof a === 'number' && typeof b === 'number'){
return a * b
}else if (typeof a === 'string' && typeof b === 'string') {
return a + b
}
throw new Error('a和b需要类型相同')
}
const result = combine(1, 2)