简体   繁体   English

一个更漂亮的TypeScript匿名类声明?

[英]A more beautiful TypeScript anonymous class declaration?

Is there a more beautiful way to express an anonymous class(?) with typed members in typeScript than this? 是否有更美妙的方式来表达一个匿名类(?)与typeScript中的类型成员比这个?

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

The only anonymous alternative would be: 唯一的匿名替代方案是:

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

You're usually better off just writing an interface so you can name the type. 你通常最好只编写一个interface以便命名类型。

Since members are undefined by default you could simply go with: 由于默认情况下成员未定义,您可以简单地使用:

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

In newer versions of typescript, this can be achieved using optional properties: 在较新版本的打字稿中,可以使用可选属性来实现:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM