假设我们有下面的接口:
interface Interface1 {
[index: string]: string;
param1: string;
}
我们希望实现上述接口;我们还想将另一个类型为number
的字段添加到类字段:
class MyClass implements Interface1 {
[index: string]: string;
param1: string;
param2: number; // TS2411 error
}
但我们遇到了一个错误,因为我们的param2
类型与索引签名的类型不匹配,所以我尝试更改索引签名(我希望它不会解决问题(:
class MyClass implements Interface1 { // TS2420
[index: string]: string | number;
param1: string;
param2: number;
}
所以,我的问题是,如何用索引签名实现接口(而不修改它(,并在类中添加另一个不同类型的字段?
interface SomeInterface {
param: string;
}
class SomeClass implements SomeInterface {
param: string;
num: number;
}
对于那个些有索引签名的接口,你们是如何做到这一点的?
它对你有用吗?:
interface Interface1 {
[index: string]: string | number;
}
class MyClass implements Interface1 {
[index: string]: string | number;
param1: string;
param2: number;
constructor(public param1: string, public param2: number) {
this.param1 = param1
this.param2 = param2
}
}