选项参数中可选参数的默认值
问题描述:
我想传递一个对象作为类的构造函数的参数。选项对象的某些键是可选的。选项参数中可选参数的默认值
在打字稿中是否有更好/更习惯的方式来完成以下内容?谢谢
class Car {
color: number;
numberOfWheels: number;
constructor (options: {color: number, numberOfWheels?: number}) {
options.numberOfWheels |= 4;
this.color = options.color;
this.numberOfWheels = options.numberOfWheels;
}
}
答
改为使用if (options.numberOfWheels === void 0) { options.numberOfWheels = 4; }
。 (否则0或NaN ...也将是4)
除了你所做的事实际上是非常聪明的,它是你可以做的最好的。 之类的东西,将无法正常工作:
constructor (options: {color: number, numberOfWheels?: number} = {color: options.color})
答
您可以使用destructuring此:
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;
}
答
我使用打字稿最新版本马厩截至2017年6月VSCode。
我们可以通过使用下面的方法来实现可选参数和默认值。
export class Searcher {
createLog(message: string = "Default: No Message!") {
console.log(message);
}
}
很好的参考链接了解Optional and Default valued parameters in TypeScript。
我希望这有助于!