【发布时间】:2018-07-24 17:50:17
【问题描述】:
我很困惑为什么以下错误,我有字符界面
interface Character {
race: "ORC" | "ELF" | "HUMAN" | "DWARF"
}
还有一个界面酒馆
interface Tavern {
races: Character['race'][]
}
这里的想法是,races 是一个字符串数组,只能是 "ORC" | "ELF" | "HUMAN" | "DWARF"
由于某种原因,当我像这样使用它时出现错误
const tavern: Tavern = {
races: ["ORC", "ELF", "HUMAN", "DWARF"]
}
错误内容如下
[ts] 类型“{ races: string[] }”不可分配给类型“Tavern”。 财产“种族”的类型是不相容的。 类型 'string[]' 不能分配给类型 '("HUMAN" | "ORC" | "ELF" | "DWARF")[]'。 类型 'string' 不可分配给类型 '"HUMAN" | “兽人” | 《精灵》 | “矮人”。
【问题讨论】:
-
2.9.2,很奇怪,我不确定还有什么可能导致该错误,将进一步研究
-
是的,您的确切代码我也没有收到任何错误。我打算建议一个辅助函数来推断文字类型而不是
string,但有些东西在起作用typescriptlang.org/play/…
标签: typescript