[英]ESLint error in VSCode - Parsing error: '?' expected
这是有问题的代码:
type Params<T> = {
[K in keyof Nested<T>]:
(Parameters<
Nested<T>[K] extends infer U extends (...args: any) => any ? U : never
>)
};
错误在infer U
U
U 上:
Parsing error: '?' expected.
类型似乎推断正确,所以我不认为这是一个 TS 错误。 如何让 VSCode 正确看到它?
您正在尝试将extends
约束添加到infer
的类型变量:
type Params<T> = {
[K in keyof Nested<T>]:
(Parameters<
Nested<T>[K] extends infer U extends (...args: any) => any ? U : never
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// `extends` constraint on `infer`ed type variable
>)
};
执行此操作的功能仅在 TypeScript 4.7( 参考)中引入。 您可以在此处验证它在配置为使用 TypeScript 4.7 的 TypeScript Playground 中是否有效。 您可以在此处配置为使用 TypeScript 4.6 的 TypeScript Playground 中看到您的问题的重现。
如果编译正常但 VS Code 出错,则您的项目和 VS Code 可能已配置为使用不同版本的 TypeScript。 请参阅 VS Code 关于编译器 vs 语言服务的文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.