繁体   English   中英

VSCode 中的 ESLint 错误 - 解析错误:“?” 预期的

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM