智能感知显示'typeof import "/path"'如何获得导入变量的智能感知



当我导入一些数据并将鼠标悬停在变量上时,它显示的是'typeof import "/some/path"'而不是变量列表。

我希望它能显示列表以启用自动完成等功能。

我做了一个例子项目。

如果您将鼠标悬停在该项目index.ts中的theme1上,它会显示变量:typeof import("some/path");

发生的方式是:

文件夹中有命名为exports的文件。有一个索引。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,
};

最后,顶部索引。

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

如果我将鼠标悬停在导入的变量上,它不会列出变量,而是显示typeof import("some/path");

所以export * from '.'不能被智能感知解析。我能不能用"export ">

?可以通过添加一些类型或以不同的方式书写来帮助解决这个问题吗?

我相信你所描述的是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';

和你的智能感知会很好地工作。

是的,这种方法比你做的要多一点,但至少类型现在可以工作了:)。

相关内容

  • 没有找到相关文章