❓ 可选参数
// 使用 ? 标记可选参数
function greet(name: string, greeting?: string): string {
if (greeting) {
return `${greeting}, ${name}!`;
}
return `Hello, ${name}!`;
}
greet('Alice'); // "Hello, Alice!"
greet('Bob', 'Hi'); // "Hi, Bob!"
// 可选参数必须放在必需参数后面
function buildName(firstName: string, lastName?: string) {
return lastName ? `${firstName} ${lastName}` : firstName;
}
buildName('John'); // "John"
buildName('John', 'Doe'); // "John Doe"
⚠️
可选参数位置
可选参数必须放在必需参数之后,否则会编译错误。
⚙️ 默认参数
// 使用 = 设置默认值
function greet(name: string, greeting: string = 'Hello'): string {
return `${greeting}, ${name}!`;
}
greet('Alice'); // "Hello, Alice!"
greet('Bob', 'Hi'); // "Hi, Bob!"
greet('Charlie', undefined); // "Hello, Charlie!"
// 默认参数可以放在前面(不推荐)
function buildName(firstName: string = 'John', lastName: string) {
return `${firstName} ${lastName}`;
}
buildName(undefined, 'Doe'); // "John Doe"
buildName('Jane', 'Smith'); // "Jane Smith"