javascript - Visual Studio代码: Remove unused parameters on callback functions breaks code

标签 javascript typescript visual-studio-code tslint

背景

我在 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/

相关文章:

javascript - 从 Javascript 调用组件中的方法 - Angular2

javascript - Amazon AWS SDK MediaConvert 不是构造函数

angular - 无法加载资源 : the server $%7Bthis. originUrl%7D/.auth/me:1 状态 404(未找到)

javascript - 侧面导航栏不透明度不起作用

javascript - 为什么我的 JavaScript 实例返回相同的结果?

javascript - 如何旋转相机使其面向球体上的点(Three.js)

angular - typescript 函数抛出错误以返回值

javascript - 如何添加垂直滚动条来选择框选项列表?

c++ - 在 Ubuntu 中使用 Visual Studio 运行 C++ 文件时出错

r - VSCode : fixed current working directory for new R terminal in multi-root projects