Typescript - 在具有多个泛型参数的泛型类型上使用“infer”关键字未按预期工作
假设我有以下类型:
type Foo<A, B> = A & B;
当我这样做时:
type Bar<T> = T extends Foo<infer _, infer K> ? K : never;
我预计这会有效:
const someVariable: Bar<Foo<string, number>> = 200;
但是我收到以下错误:“类型 'number' 不能分配给类型 'never'。”
答案#1
type Foo<A, B> = A & B;
在传递像 string 和 number 这样的原始类型时要小心,因为
type Foo<A, B> = A & B;
type R = Foo<string, boolean>;
R is never
你可能应该改为 type Foo<A, B>=A | B;,这应该能解决你的问题。
