Подтвердить что ты не робот

Более красивая TypeScript анонимная декларация класса?

Есть ли более прекрасный способ выразить анонимный класс (?) с типизированными членами в typeScript чем это?

class Foo {
    member = {
        aNumber = <number>undefined;
        aBoolean = <bool>undefined;
    }
}
4b9b3361

Ответ 1

Единственная анонимная альтернатива:

class Foo {
    member: { aNumber?: number; aBoolean?: bool; } = {
        aNumber: undefined,
        aBoolean: undefined
    }
}

Обычно вам лучше писать interface, чтобы вы могли назвать тип.

Ответ 2

Поскольку члены undefined по умолчанию, вы можете просто пойти с:

class Foo {
    member:{aNumber:number;aBoolean:bool;} = <any>{};
}

Ответ 3

В новых версиях typescript это может быть достигнуто с использованием дополнительных свойств:

class Foo {
    member: { aNumber?: number; aBoolean?: boolean; } = {}
}