我尝试使这些条件推断类型起作用:
type A<T> = T extends { a: infer U } ? U : never
type B<T> = T extends { a: infer U } ? U : never
class Test<K extends { a: string }> {
constructor(props: string) {
// Error: string is not assignable to A<K>
let a: A<K> = props
// Error
let b: B<K> = props
// Error: B<K> is not assignable to A<K>
a = b
}
}
A<K>
和B<K>
的定义相同,但不能相互分配。
我无法理解A<K>
和B<K>
在编译时都应该是字符串类型,但是不能接受string
的值。
有什么办法可以使它起作用?
答案 0 :(得分:0)
正如@jcalz所说,TS3.7对其进行了修复。