Typescript 选项参数中可选参数的默认值
我想传递一个对象作为类构造函数的参数。选项对象的某些键是可选的 有没有更好/更惯用的方法来完成以下打字脚本?谢谢Typescript 选项参数中可选参数的默认值,typescript,Typescript,我想传递一个对象作为类构造函数的参数。选项对象的某些键是可选的 有没有更好/更惯用的方法来完成以下打字脚本?谢谢 class Car { color: number; numberOfWheels: number; constructor (options: {color: number, numberOfWheels?: number}) { options.numberOfWheels |= 4; this.color = opti
class Car {
color: number;
numberOfWheels: number;
constructor (options: {color: number, numberOfWheels?: number}) {
options.numberOfWheels |= 4;
this.color = options.color;
this.numberOfWheels = options.numberOfWheels;
}
}
如果(options.numberOfWheels==void 0){options.numberOfWheels=4;}则改用。(否则0或NaN…也将是4)
除此之外,你所做的实际上是相当聪明的,这是你能做的最好的。
像这样的事情是行不通的:
constructor (options: {color: number, numberOfWheels?: number} = {color: options.color})
您可以为此使用:
class Car {
color: number;
numberOfWheels: number;
constructor ({color, numberOfWheels = 4}: {color: number, numberOfWheels?: number}) {
this.color = color;
this.numberOfWheels = numberOfWheels;
}
}
或者
constructor (options: {color: number, numberOfWheels?: number}) {
let {color, numberOfWheels = 4} = options;
this.color = color;
this.numberOfWheels = numberOfWheels;
}
注意:此答案并非试图给出问题的确切答案。相反,为方法或构造函数提供了关于可选或默认参数的简单答案,这些参数在Typescript中是如何工作的(仅用于文档目的)。搜索参数的简单可选/默认值的用户可能会发现此答案很有用
我使用的是截至2017年6月的最新稳定版本Typescript和VSCode
我们可以使用以下方法实现可选参数和默认值
export class Searcher {
createLog(message: string = "Default: No Message!") {
console.log(message);
}
}
很好的参考链接了解
编辑:
您可以像这样调用上面的方法
this.createLog();
因此,您不需要传递任何参数值“它将成为可选参数”
当您不传递参数“时,将在该执行位置提供默认值
因此,我们可以使用上述方法实现参数表的可选参数和默认值
export class Searcher {
createLog(message: string = "Default: No Message!") {
console.log(message);
}
}
我希望这对某人有帮助 为什么这个答案被否决了?请留下一个原因,以便我可以纠正这里的任何误导。你的答案,甚至你的链接不是真正相关的OP问题。您也没有尝试他给出的示例,因为您无法为可选参数提供默认值。不完全是!问题是如何在构造函数中传递对象属性的可选参数/默认值。这个问题在我的搜索中突然出现,但我所寻找的只是带有可选方法的默认参数。因此,在这里发布了这个答案,它可能会帮助那些只想要一个带有默认值的可选参数的人。我已经回答了你的“你不能为可选参数提供默认值”。查询,请参阅我对这个答案的编辑。我希望这能澄清……;)