Visual Studio 代码:删除回调函数中未使用的参数中断代码

Visual Studio Code: Remove unused parameters on callback functions breaks code

背景

我在我的 TypeScript 项目中使用 Visual Studio 代码,我们都得到了越来越好的 IDE 函数的祝福,比如建议的变量名、建议的导入、建议的未使用变量等。

但是,我最近看到当我通过删除未使用的导入等清理文件时,回调函数中未使用的参数也会被删除,无论它们的顺序如何。

一个常见的例子是 Express 控制器函数,在我想不使用任何过滤器的情况下获取一些东西:

function getAllItems(req: Request, res: Response)

req 在此上下文中可能没有用。 Visual Studio 然后代码会简单地删除它,给我留下:

function getAllItems(res: Response) 

不再符合回调函数签名。

我试过的

似乎有一个用于 TypeScript 的 "noUnusedParameters": true 选项,您可以将其放入 tsconfig.json。但是,我想保留对非回调函数的建议。

问题

如何更改 Visual Studio 代码的行为,以便保留不在最后位置的未使用参数,无论是否使用它?

虽然参数未使用的错误是有效的,但删除它的建议并非在所有情况下都没有副作用,尤其是当参数不是最终参数时。

根据您的使用情况和 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 的编译错误,您需要使用 _ 作为参数名称(或 _____ 如果你有更多)