Typescript Angular: по умолчанию для всех членов класса установлено значение Null, если не определено (не используется) - PullRequest
0 голосов
/ 07 февраля 2020

Есть ли простой способ установить все значения в NULL в классе Typescript, без повторного копирования и вставки вручную, как это. Хочешь следовать принципу Dry (не повторяйся). Я хочу, чтобы все значения были автоматически установлены на ноль, если они не определены.

export class PropertySitusAddress {

    primaryPropertyMailingAddressId?:number = null;
    propertyId?:number = null;
    propertySitusAddressId?:number = null;
    addressFormatId?:number = null;
    apn?: string = null;
    owner?: string  = null;
    situsAddress?:string = null;
    primaryMailingAddress?:string = null;   
    streetNumber?: string = null;
    situsFromNumber?: string = null;
    situsThroughNumber?: string = null;
    fractional?: string = null;
    predirectional?: string = null;

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Если вы будете использовать PropertySitusAddress в качестве интерфейса, тогда для свойств не может быть значений по умолчанию. этот ТАК вопрос о других обходных путях.

Если вы сделаете их необязательными, то в любом случае эти свойства будут иметь значение undefined в качестве значения по умолчанию.

Если эти свойства не используются в интерфейсе, вы можете реализовать его так же, как это сделал @DoronG, или: -

primaryPropertyMailingAddressId: number | null = null;
1 голос
/ 07 февраля 2020

Прежде всего, вы неправильно набрали: ? не означает, что значение может быть null, это означает, что оно может быть undefined.

На ваш вопрос подумайте о JavaScript вывод, вы на самом деле хотите, чтобы все поля были установлены на null, поэтому нет никакого способа присвоить его. Тем не менее, вы можете сократить это назначение, хотя я не уверен, что оно будет меньше набирать:

export class PropertySitusAddress {
    primaryPropertyMailingAddressId?: number | null;
    propertyId?: number | null;
    propertySitusAddressId?: number | null;
    addressFormatId?: number | null;
    apn?: string | null;
    owner?: string | null;
    situsAddress?: string | null;
    primaryMailingAddress?: string | null;
    streetNumber?: string | null;
    situsFromNumber?: string | null;
    situsThroughNumber?: string | null;
    fractional?: string | null;
    predirectional?: string | null;

    constructor() {
        this.primaryPropertyMailingAddressId =
            this.propertyId =
            this.propertySitusAddressId =
            this.addressFormatId =
            this.apn =
            this.owner =
            this.situsAddress =
            this.primaryMailingAddress =
            this.streetNumber =
            this.situsFromNumber =
            this.situsThroughNumber =
            this.fractional =
            this.predirectional = null;
    }
}

Полагаю, лучшее предложение - использовать редактор с функцией для нескольких курсоров (например, vscode). )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...