多看几遍https://xiaoman.blog.csdn.net/article/details/122758713
在 TypeScript 中,infer
关键字用于从表达式中推断类型。它通常与条件类型(conditional types)一起使用,在条件类型的分支中可以推断出一个新的类型。
下面是一个示例,展示了如何在 TypeScript 中使用 infer
:
type ReturnType<T> = T extends (...args: any[]) => infer R ? R : any;
function foo(): string {
return "Hello, world!";
}
type FooReturnType = ReturnType<typeof foo>;
// FooReturnType 类型会被推断为 string
在上面的示例中,我们定义了一个 ReturnType
条件类型,它接受一个函数类型作为参数,并根据函数的返回类型来推断一个新的类型。通过使用 infer R
,我们将返回类型赋值给 R
,然后将其作为条件类型的返回结果。
在我们调用 ReturnType<typeof foo>
的时候,infer
关键字会从 foo
函数的类型中推断出返回类型是 string
,因此 FooReturnType
类型也会被推断为 string
。
希望这个示例能帮助你理解如何使用 infer
关键字的基本用法。