【发布时间】:2019-12-14 19:42:00
【问题描述】:
我有这个sn-p
class J {
constructor(public foo: number) {}
}
class B {
constructor(public bar: string) {}
}
interface Cache {
json?: J;
binary?: B;
}
function test(key: "json" | "binary", data: J | B, obj: Cache) {
obj[key] = data;
}
如果您在https://www.typescriptlang.org/play/ 中尝试此代码,obj[key] = data; 行会出现以下错误
键入'J | B' 不可分配给类型 'J & B'。 类型“J”不可分配给类型“J & B”。 类型“J”中缺少属性“bar”,但类型“B”中需要。
显然我缺少一些东西,但我不知道是什么。有什么想法吗?
【问题讨论】:
标签: typescript typescript3.0 union-types