我想定义一个typescript接口
来将来自Web服务的答案映射到一个类型(类似于此处显示的内容)。这是一个示例答案。
{
"type": "Seen",
"creation": 33,
"fileId": 6
}
因此,以下接口将是合适的。
interface Event {
type: 'Accepted' | 'Judgment' | 'Seen';
creation: number;
fileId: number;
}
不幸的是,编译器不喜欢它:type
是一个保留关键字。
如何在接口中使用保留关键字作为属性?
我想可以使用另一个术语定义属性,然后以某种方式定义它的别名,如这里所建议的,或者使用var
代替这里所建议的,但是我不知道如何在我的情况下做到这一点。
在接口
中使用名为type
的属性是完全可以的。事实上,您可以在接口中使用TypeScript的所有关键字:
interface Test {
type: string
class: string
any: string
}
这里的问题是您正在修改现有的接口
,该接口已经将type
定义为typestring
:
// lib.dom.d.ts
/** An event which takes place in the DOM. */
interface Event {
readonly type: string;
/* ... */
}
您可以定义多个同名接口来合并它们。这称为“声明合并”。但是如果您使用不同的类型定义相同的属性,您会收到以下错误:
“type”的所有声明都必须具有相同的修饰符。
因此,除非您尝试修改全局可用的接口Event
,否则您应该选择接口的另一个名称。