Typescript: 命名空间中的类型不在导入建议列表中

guicsvcw  于 9个月前  发布在  TypeScript
关注(0)|答案(3)|浏览(153)

当所有扩展都被禁用时,是否会出现这个问题?:是的

  • VS Code 版本:1.61.1
  • OS 版本:使用 WSL 作为工作区的 Windows 10

重现步骤:

  1. 创建 TS 项目
  2. 使用以下 tsconfig.json:
  1. {
  2. "compilerOptions": {
  3. "target": "es5",
  4. "module": "commonjs",
  5. "typeRoots": [
  6. "types"
  7. ]
  8. },
  9. }
  1. 在 types/ 下创建一个 type.d.ts
  1. declare namespace test {
  2. interface TestInterface {
  3. name: string;
  4. }
  5. }
  1. 在根目录下创建一个 test.ts
  1. let x: TestInterface;
  1. 查看 TestInterface 无法解析,尝试使用快速修复

  1. 类型不在建议中,我本以为会有类似的建议:
  1. import TestInterface = test.TestInterface;

另外请注意,TestInterface 也不在输入 let x: TestI 然后按 Ctrl + Space 时的类型建议中。但是如果我输入 let x: test.TestI 然后按 Ctrl + Space,它是在建议中的

dkqlctbz

dkqlctbz1#

这听起来有点像自动导入,但对于命名空间成员
我担心它可能会导致意外的建议,尽管在现实世界项目中,但将上游移动到TS以获得更多反馈

jum4pzuy

jum4pzuy2#

感谢你花时间查看这个。我不确定自动导入是否与此相关,至少我不希望命名空间类型自动导入。然而,我希望在类型和导入建议中看到它们。

chhqkbe1

chhqkbe13#

我可以告诉你,我们可能永远不会把这些放在完成列表中,因为这会很贵,但对于快速修复来说,性能问题不是那么大的问题,所以这里看起来是合理的。

相关问题