给出这个条件类型的例子:
type MyType = 'Number' | 'String';
interface Test<T extends MyType> {
bar: T extends 'Number' ? 25 : '25'
}
如果我尝试:
const test: Test<'Number'> = {bar: null}
我没有任何抱怨,这似乎是有效的打字稿。但是,当我将鼠标悬停在bar
上时,会弹出一个(property) Test<"Number">.bar: 25
弹出窗口,这似乎意味着TS可以理解正确的类型。
为什么我这样分配时没有错误?我该如何解决?