End

TypeScript 函数参数 函数重载

本文地址

TypeScript 函数参数 函数重载

可选参数

可选参数使用问号标识 ?,可选参数必须跟在必需参数后面。

function buildName(firstName: string, lastName?: string): string {
    return firstName + "-" + lastName;
}

console.log(buildName("b", "qt")) // b-qt
console.log(buildName("bqt"))     // bqt-undefined

默认参数

  • 默认参数必须跟在必需参数后面
  • 可选参数和默认参数的顺序没有要求
  • 参数不能同时设置为可选和默认
function buildName(firstName: string, lastName: string = "xxx"): string {
    return firstName + "-" + lastName;
}

console.log(buildName("b", "qt")) // b-qt
console.log(buildName("bqt"))     // bqt-xxx

剩余参数

即 Java 中的 可变参数。

function buildName(firstName: string, ...restOfName: string[]): string {
    return firstName + "-" + restOfName.join("-");
}

console.log(buildName("bqt"))         // bqt-
console.log(buildName("b", "qt"))     // b-qt
console.log(buildName("b", "q", "t")) // b-q-t

函数重载

TypeScript 中的 函数重载 和 Java 等不太一样。

定义函数重载需要定义若干重载签名一个实现签名

重载签名定义函数的形参和返回类型,但没有函数体

// 定义重载签名,没有函数体
function disp(x: string): void;
function disp(y: number): void;
function disp(x: string, y: number): void;

// 定义实现签名,有函数体
function disp(x: any, y?: any): void {
    console.log(`${x}-${y}`);
}

disp("abc");    // abc-undefined
disp(1);        // 1-undefined
disp("abc", 1); // abc-1

2016-12-13

posted @ 2016-12-13 15:05  白乾涛  阅读(6972)  评论(0)    收藏  举报