函数默认参数类型可以通过类型注解定义,也可以根据默认参数值自动地推断类型。例如,下例中函数默认参数x
的类型通过类型注解明确定义,而默认参数y
的类型则是根据默认值 0 推断出的类型,最后两个参数的类型均为number类型。示例如下:
function add(x: number = 0, y = 0) {
return x + y;
}
如果函数定义了默认参数,并且默认参数处于函数参数列表末尾的位置,那么该参数将被视为可选参数,在调用该函数时可以不传入对应的实际参数值。
例如,下例中参数y
是默认参数,且处于参数列表的末尾,因此参数y
成了可选参数。在调用add函数时,允许不传入参数y
的实际参数值。示例如下:
function add(x: number, y: number = 0) {
return x + y;
}
add(1); // 1
add(1, 2); // 3
在语法上,同一个函数参数不允许同时声明为可选参数和默认参数,否则将产生编译错误。示例如下:
function f(x?: number = 0) {
// ~
// 编译错误!参数不能同时使用?符号和初始化值
}
如果默认参数之后存在必选参数,那么该默认参数不是可选的参数,在调用函数时必须传入对应的实际参数值。示例如下:
function add(x: number = 0, y: number) {
return x + y;
}
add(1); // 编译错误
add(1, 2); // 正确
add(undefined, 2); // 正确
酷客网相关文章:
评论前必须登录!
注册