- 区别:
- 可选参数:在函数定义时,通过在参数名后加
?
表示该参数是可选的。调用函数时可以不传该参数。可选参数后面不能再跟必需参数。
- 默认参数:在函数定义时,给参数直接赋一个默认值。调用函数时若不传该参数,则使用默认值。默认参数后面可以跟必需参数。
- 示例:
function greet(name: string, message?: string) {
if (message) {
return `Hello, ${name}! ${message}`;
}
return `Hello, ${name}!`;
}
console.log(greet('John'));
console.log(greet('John', 'How are you?'));
function greetWithDefault(name: string, message = 'Have a nice day!') {
return `Hello, ${name}! ${message}`;
}
console.log(greetWithDefault('Jane'));
console.log(greetWithDefault('Jane', 'Goodbye!'));