我正在尝试扩展我的一个接口,但不断收到错误“{dcs:Relationship} 类型中缺少索引签名,使用以下代码段:
interface Relationship {
data: {
id: string;
type: string;
}
}
interface T {
relationships: {[key: string]: Relationship};
}
interface Test extends T {
relationships: {
dcs: Relationship;
};
}
Run Code Online (Sandbox Code Playgroud)
目标是使 T 中的关系属性成为具有任意数量的关系类型的键的对象。测试应该是类型 T 的特定实现。
不知道解决这个问题的正确方法是什么。提前致谢!
Test像这样声明:
interface Test extends T {
relationships: {
[key: string]: Relationship;
dcs: Relationship;
};
}
Run Code Online (Sandbox Code Playgroud)
但是,正如您所注意到的,当您实际实现该接口时,您最终必须再次声明索引器。您可以通过执行以下操作来节省一些打字时间:
interface T {
relationships: {
[key: string]: Relationship;
};
}
interface TestRelationships {
[key: string]: Relationship;
dcs: Relationship;
}
interface Test extends T {
relationships: TestRelationships;
}
class T1 implements Test {
relationships: TestRelationships;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7584 次 |
| 最近记录: |