【发布时间】:2021-11-23 07:10:50
【问题描述】:
在 Typescript 中,当为 string 类型的参数分配默认值时,空字符串会被视为某事并且不使用默认值。
这是有道理的,但在某些情况下,我想改变它:
function greet (name?:string = 'visitor') {
console.log(`Hello ${name}`)
}
greet('Gromit') // logs "Hello Gromit"
greet() // logs "Hello visitor"
greet('') // logs "Hello " <--- How can I get the default value in this case too?
Typescript 是否可能有一个我没有找到的功能来帮助定义我希望何时应用默认值?
目前,我一直在使用我认为的解决方法:
const defaultName = 'visitor'
function greet (name?:string = defaultName) {
const finalName = name || defaultName
console.log(`Hello ${finalName}`)
}
但我宁愿在 Typescript 上使用更简洁、更惯用的东西,如果不存在更好的模式,我会感到惊讶。
明确地说,我希望在负责定义函数参数的代码部分中找到一种方法来执行此操作: 函数问候 (/* 这里 */) {}
建议的解决方案在本节之外引入代码,就像我在解决方法中所做的一样。
感谢您的指点!
【问题讨论】: