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