1
我想定义一个有一些已知成员的接口,而未知成员应该映射回相同的类型。我想能够定义:自引用索引类型
interface Foo {
name?: string;
[others: string]: Foo;
}
这将让我来定义:
var myFoo: Foo = {
name: 'foo1'
anotherfoo: {
name: 'foo2'
yetanotherfoo: {
name: 'foo3'
}
}
}
但是,我的接口出现故障时,出现以下错误消息编译:
物业“字符串”类型的“名称”不能分配给字符串索引类型'Foo'
我已经成功地做到这一点,到目前为止的唯一方法是定义我的索引类型与任何类型:
[others: string]: any;
这使得代码编译,但显然失去了进一步下跌的元素任何类型的安全性和智能。
我不想改变我的数据结构的建议 - 这实际上是为了更正敲除映射库的打字稿定义,因为不允许未定义的成员,所以不再适用于TS1.6。
感谢 - 这不是最巧妙的解决方案(实际的类我的工作有5种或6个类型,包括委托) ,但它比使用任何东西都要好! – Richard