TypeScript 将参数转换为解构对象重构抛出“无法应用重构”

ny6fqffe  于 6个月前  发布在  TypeScript
关注(0)|答案(4)|浏览(87)

TS模板由@mjbvz添加
TypeScript版本:4.8.0
搜索关键词

  • getEditsForRefactor

测试 microsoft/vscode#158636

  1. 打开 https://github.com/microsoft/vscode/blob/bb70d7ab19f7295fe669b6384a6c8ccd73d05cc3/src/vs/workbench/services/workspaces/common/editSessionIdentityService.ts#L35
  2. workspaceFolder 上右键单击
  3. 从上下文菜单中选择重构 > 将参数转换为从解构对象,查看类似以下的错误:

w8f9ii69

w8f9ii691#

这是一个TS问题,与新的UX无关。将尝试合并更小的repo

xiozqbni

xiozqbni2#

最小仓库:

interface IFoo {
    bar(a: number, b: string): void
}

class Foo implements IFoo {
    bar(a: number, b: string): void { // run convert here
        throw new Error("Method not implemented.");
    }
}

在这种情况下,TS返回一个空的编辑集。

g0czyy6m

g0czyy6m3#

我们应该省略这个重构建议吗?还是我们需要尝试将参数转换为一个解构对象?对于以下情况,我不确定:

$x_1a_0b_1^x$

n9vozmp4

n9vozmp44#

通常,如果某个东西因为难以处理的意外情况而崩溃,那么不提供重构是没问题的。如果以后出现"X重构应该在Y条件下显示"的建议问题,我们可以稍后再讨论。

相关问题