TypeScript 自动导入保留关键字导出触发器

mrwjdhj3  于 5个月前  发布在  TypeScript
关注(0)|答案(4)|浏览(47)

TypeScript版本: 3.1.3
搜索词: auto import关键字
代码

// a.ts
function return_() {}
function throw_() {}
function break_() {}
function continue_() {}
export { return_ as return, throw_ as throw, break_ as break, continue_ as continue };

// b.ts

// typing any of the following keywords in VS Code now auto-imports one of the above exports
return
throw
break
continue

预期行为:

自动导入不应触发保留字。

实际行为:

自动导入会在你用与导出相同名称的保留字编写时触发,为无效的关键字添加一个导入声明到文件顶部。

ghg1uchk

ghg1uchk1#

这是一个TypeScript的bug吗?我认为这是VS Code的问题,而不是TS的问题。

0qx6xfy6

0qx6xfy62#

它可能是VS Code,但这取决于自动导入建议来自Code还是TypeScript语言服务。

ecbunoof

ecbunoof3#

免责声明:我对这两个代码库都不熟悉,但我猜流程大概是这样的:

  1. VSCode 询问 TSLS 哪个模块有一个名为某个名称的导出
  2. TSLS 返回一个具有该名称导出的模块列表(无论名称是什么,因为使用关键字作为导出名称是合法的)
  3. VSCode 将相关的导入添加到文件中
    所以,如果 VSCode 真的在请求保留关键字,那对我来说听起来像是 VSCode 的 bug,而不是 TSLS 的错。
    当然,也有可能我一直在胡说八道,如果是这样的话,请随意假装我什么都没说过。 :)
xdnvmnnf

xdnvmnnf4#

我目前在编辑一个使用tap的项目时遇到了这个问题,它导出了truefalse

这非常令人恼火,有什么方法可以提高优先级吗?

相关问题