TypeScript - 如何:以“。”开头的属性。 (点)

时间:2014-05-02 13:35:25

标签: typescript

调用.NET OAuthToken端点时,结果包含两个以“。”开头的属性:

{   
    "access_token":"abcde..."
    "expires_in":1209599
    ".expires":"Fri, 16 May 2014..."    <- this
    ".issued":"Fri, 02 May 2014..."     <- this
    ... more properties ...
}

我喜欢做的是在TypeScript中创建一个接口来处理这个结果。但是我不知道如何使用前面的小点声明这两个属性。

export interface Token {
    access_token: string;
    expires_in: number;
    .expires???
    .issued???
}

有什么想法吗?

2 个答案:

答案 0 :(得分:8)

查看the TypeScript language specification的3.7.1节,看起来对象文字中的属性签名与JavaScript中的对象文字属性定义大致相同,这意味着属性名称可以是标识符,字符串文字或数字文字。换句话说,你可以做到:

export interface Token {
    access_token: string;
    expires_in: number;
    ".expires": string;
    ".issued": string;
}

答案 1 :(得分:3)

只需使用引用的界面成员:

interface Token {
    access_token: string;
    expires_in: number;
    '.expires': number;
}

var foo:Token;
foo['.expires'] = '123'; // Error 
foo['.expires'] = 123; // okay