Есть ли способ уменьшить порядок необязательных параметров в TypeScript? В настоящее время у меня есть класс
export default class Area {
private name: string;
private description: string;
private item?: Item;
private hazard?: Hazard;
constructor(name: string, description: string, item?: Item, hazard?: Hazard) {
this.name = name;
this.description = description;
this.item = item;
this.hazard = hazard;
}
}
. Для этого класса области мне потребовались параметры name
и string
, но не параметры item
или hazard
. Я попытался создать экземпляр объекта Area следующими способами:
let item = new Item(); // had required parameters, but not important for now
let hazard = new Hazard(); // had required parameters, but not important for now
let area = new Area("test", "test"); // works as expected
let area1 = new Area("test", "test", item); // works as expected
let area2 = new Area("test", "test", hazard); // DOES NOT WORK as expected
let area3 = new Area("test", "test", item, hazard); // works as expected
Несмотря на то, что hazard
и item
являются необязательными, если я хочу опустить item
, мне нужно передать undefined
для третий параметр. Есть ли способ смягчить или предсказать go это поведение, когда мы можем передать третий аргумент, который соответствует любому из необязательных параметров?