TypeScript默认参数类型

函数默认参数类型可以通过类型注解定义,也可以根据默认参数值自动地推断类型。例如,下例中函数默认参数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); // 正确

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!