选项参数中可选参数的默认值

问题描述:

我想传递一个对象作为类的构造函数的参数。选项对象的某些键是可选的。选项参数中可选参数的默认值

在打字稿中是否有更好/更习惯的方式来完成以下内容?谢谢

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

我希望这有助于!