typescript Intellisense显示'typeof import“/path”' -如何获得导入变量的intellisense?

x8diyxa7  于 2023-01-21  发布在  TypeScript
关注(0)|答案(1)|浏览(125)

当我导入一些数据并将鼠标悬停在变量上时,它显示'typeof import "/some/path"'而不是变量列表。
我想让它显示列表,使自动完成等事情。
我做了一个example project
如果您将鼠标悬停在该项目的index.ts中的theme1上,则会显示vars:typeof import("some/path");
它发生的方式是:
一个文件夹中有一些名为exports的文件。有一个index.ts文件可以导出该文件夹中的所有内容:

//stuff/variables/index.ts
export * from '.';

//stuff/variables/vars1.ts
const stuff1 = 'stuff1';
const stuff2 = 'stuff2';
const stuff3 = 'stuff3';

export { stuff1, stuff2, stuff3 };

父文件夹中的文件从该索引.ts文件导入所有内容,并将其导出为变量:

//stuff/index.ts
import * as variablesData from './variables/index';

export const vars = variablesData;

另一个文件导入该变量并将其包含在导出的对象中:

//stuff/theme.ts
import { vars } from './index';
    
const obj = {
  blue: 'blue',
};

export const theme1 = {
 ...obj,
 vars,
};

最后,最上面的索引.ts导入名为export的数据。

//index.ts
import { theme1 } from './stuff/theme';
console.log(theme1);

如果我将鼠标悬停在导入的变量上,它不会列出变量,而是显示typeof import("some/path");
所以export * from '.'不能用智能解析,不能用“export *”吗?
这可以通过添加一些类型或以不同的方式编写来帮助吗?

ha5z0ras

ha5z0ras1#

  • 我相信你所描述的是Typescript本身的一个bug/缺失的特性。尽管我在Github问题中做了一个超快的搜索后没有发现它。*

您可以直接在vars1.ts文件中定义vars变量。

//stuff/variables/vars1.ts
const stuff1 = 'stuff1';
const stuff2 = 'stuff2';
const stuff3 = 'stuff3';

const vars = { stuff1, stuff2, stuff3 };

export { stuff1, stuff2, stuff3, vars };

然后调整索引文件

//stuff/index.ts
export { vars } from './variables/index';

你的智能也会很好地工作。
是的,这种方法比你做的要多一点工作,但至少类型现在起作用了:)。

相关问题