有没有办法在TypeScript类定义中转义和使用保留字?

时间:2017-03-30 17:16:47

标签: javascript typescript firebase firebase-realtime-database escaping

以下是我想做的一个简单示例:

export class UserInfoPrivate {
    constructor(
        public repEmail: string,
        public repPhone: string,
        public agreedToTnC: boolean
    ) { }
}

export class UserInfo {
    constructor(
        public $uid: string,
        public orgApproved: false,
        public private: UserInfoPrivate, // <-- private is a reserved word
        public open: UserInfoOpen,
    ) { }
}

由于datebase是一个NoSQL(Firebase)并且返回简单的JSON结构对象,并且我在一个名为“private”的用户下面有一个节点,我想直接将我的类映射到它而不需要额外的解析。有没有办法在类定义中使用保留字,例如“私有”,还是必须更改节点?

到目前为止,我的研究似乎没有,但我很难接受这种情况是不可能的。

1 个答案:

答案 0 :(得分:-1)

您始终可以将属性名称(在类或对象文字中)放在引号中 - 对于那些无效的标识符名称,您需要这样做。您可以使用bracket notation然后访问它们。

export class UserInfo {
    public "private": UserInfoPrivate
    constructor(
        public $uid: string,
        public orgApproved: false,
        privateParam: UserInfoPrivate,
        public open: UserInfoOpen,
    ) {
        this.private = privateParam;
    }
}

(我希望看起来像有效的Typescript不仅仅是我的眼睛,还有编译器)