代码之家  ›  专栏  ›  技术社区  ›  maxpaj

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

  •  0
  • maxpaj  · 技术社区  · 6 年前

    背景

    我在我的typescript项目中使用了Visual Studio代码,并且我们都有了越来越好的IDE函数,比如建议的变量名、建议的导入、建议的未使用的变量等。

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

    一个常见的例子是Express控制器函数,在这种情况下,我想获取不带任何过滤器的内容:

    function getAllItems(req: Request, res: Response)
    

    req 在这种情况下可能不有用。然后,Visual Studio代码将简单地删除它,使我可以:

    function getAllItems(res: Response) 
    

    它不再适合回调函数签名。

    我试过的

    好像有一个 "noUnusedParameters": true 可放入tsconfig.json的typescript选项。但是,我想保留对非回调函数的建议。

    问题

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Titian Cernicova-Dragomir    6 年前

    虽然参数未使用的错误是有效的,但是在所有情况下,如果没有副作用,建议删除它是不适用的,特别是当参数不是最终参数时。

    根据您的用法和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 你需要使用 _ 作为参数名(或 __ ___ 如果你有更多)