📅  最后修改于: 2023-12-03 15:35:57.788000             🧑  作者: Mango
在 TypeScript 中,函数的参数可以被标记为可选的,这意味着这个参数不是必须要传入的。这为编写更灵活的函数提供了便利,允许函数接受各种不同数量的参数。
在 TypeScript 中,标记可选参数的语法很简单,只需在参数名后面添加一个问号。例如:
function greet(name?: string) {
console.log(`Hello, ${name ?? "World"}!`);
}
greet();
greet("TypeScript");
上面的 greet
函数接受一个可选参数 name
,并在控制台输出问候语。如果没有传入 name
参数,函数会打印 "Hello, World!"
。如果传入了 name
,函数会打印 "Hello, TypeScript!"
(或者你传入的具体值)。
虽然可选参数和默认参数都可以使函数更加灵活,但它们是有区别的。可选参数只是标记了参数是否需要传入,但对于没有传入的可选参数,它们的值将会是 undefined
。默认参数则是给参数指定了默认值,如果没有传入参数,它们会使用默认值。
下面的例子演示了可选参数和默认参数的区别:
function greet(name?: string, greeting: string = "Hello") {
console.log(`${greeting}, ${name ?? "World"}!`);
}
greet(); // 输出 "Hello, World!"
greet("TypeScript"); // 输出 "Hello, TypeScript!"
greet("TypeScript", "Bonjour"); // 输出 "Bonjour, TypeScript!"
greet(undefined, "Bonjour"); // 输出 "Bonjour, World!"
请注意,我们可以使用 undefined
来显式地传递 undefined
,并让可选参数使用默认值。
在 TypeScript 中,我们可以使用问号来标记函数的可选参数。这使得函数更加灵活,可以接受不同数量的参数。和默认参数不同,可选参数的值将会是 undefined
,如果没有传入参数。