背景
我在 TypeScript 项目中使用 Visual Studio Code,我们都幸运地拥有了越来越好的 IDE 功能,例如建议的变量名称、建议的导入、建议的未使用变量等。
但是,我最近发现,当我通过删除未使用的导入等来清理文件时,回调函数中未使用的参数也会被删除,无论其顺序如何。
一个常见的例子是 Express Controller 函数,当我想在没有任何过滤器的情况下获取某些内容时:
function getAllItems(req: Request, res: Response)
req
在此上下文中可能没有用。然后,Visual Studio Code 会简单地将其删除,留下:
function getAllItems(res: Response)
这不再适合回调函数签名。
我尝试过的
似乎 TypeScript 有一个 "noUnusedParameters": true
选项,您可以将其放入 tsconfig.json 中。但是,我想保留对非回调函数的建议。
问题
如何更改 Visual Studio Code 的行为,以便保留不在最后位置的未使用参数,无论是否使用它?
最佳答案
虽然参数未使用的错误是有效的,但删除该参数的建议并非在所有情况下都适用且没有副作用,特别是当参数不是最终参数时。
根据您的使用情况和 Express 的类型,理想情况下,参数较少的版本不应分配给原始版本。
function test(a: number, b: string) { console.log(b )}
let expected : (a: number, b: string) => void = test; // original is valid
function test(b: string) { console.log(b )}
let expected : (a: number, b: string) => void = test; // the version with the missing first parameter is not valid here
如果您需要保留未使用的参数并且不会遇到 noUnusedParameters
的编译错误,则需要使用 _
作为参数名称(或 __
) > 或 ___
(如果有更多)
关于javascript - Visual Studio代码: Remove unused parameters on callback functions breaks code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51306639/