使用带有保留字符的密钥声明接口

时间:2016-01-03 10:19:25

标签: typescript

在库中,我使用某些函数可能会返回如下对象:

{
    wifiAddress: "abc...",
    3GAddress: "abc..."
}

我正在为这些创建一个小的声明文件,但我被困在这里。如何声明第二个键(以数字开头)?

interface AddressPair {
    wifiAddress: string,
    3GAddress: string // <-- ERROR here
}

3 个答案:

答案 0 :(得分:3)

语法不是这个吗?

interface AddressPair {
    wifiAddress: string;
    3GAddress: string;
}

您需要使用;结束每个声明。

答案 1 :(得分:0)

Javascript允许哈希对象使用任意字符串键。我不确定Typescript,但你可以试试这个:

{
    wifiAddress: "abc...",
    '3GAddress': "abc..."
}

答案 2 :(得分:0)

我已经意识到这有用的先前答案:

interface AddressPair {
    wifiAddress: string;
    '3GAddress': string;
}

在这种情况下,3GAddress是特殊的,因此无法通过点表示法访问它。因为我需要使用括号表示法编译器(自动完成)无法帮助我:

var a: AddressPair = { ... }
a.3GAddress; // With dot notation I would get autocomplete (for any other key) 
             // but in this case syntax it leads to an error.
a['3GAddress']; // Correct but no autocomplete :(