【问题标题】:TypeScript import only as declaration?TypeScript 导入仅作为声明?
【发布时间】:2016-12-17 21:46:10
【问题描述】:

是否可以在 TypeScript 中导入节点模块而无需在编译后实际尝试导入?

我的意思是:
我在名为 intellisense.ts 的文件中创建了一个全局变量,我在其中调用:

import * as fs from 'fs';

然后在另一个文件中引用它:

/// <reference path="./intellisense.ts" />
fs.existsSync('...');

此时 VSCode 智能感知告诉我它找不到名称“fs”。

有没有办法在不将 fs 导入其他文件的情况下解决这个问题?

请注意:

  • 我只需要导入一次 fs
  • 我不想从 intellisense.ts 导出 fs
  • 我不想以任何方式导入 intellisense.ts
  • 我确实希望 fs 在全局范围内仅作为参考

【问题讨论】:

  • 你不能拥有一切。如果你想使用fs,那么你需要从你的intellisense.ts 中导出它,并且你需要将它导入到你想使用它的地方。另一种选择是在intellisense.ts 中有一个导出函数,它在内部将使用导入的fs。在任何情况下,仅引用该文件仅适用于编译,但当您尝试运行它时会出现错误。

标签: typescript import intellisense declaration visual-studio-code


【解决方案1】:

我在文件中创建了一个全局变量

这不是一个全局变量。它是该文件中的一个导入模块。您需要在每个使用模块的文件中显式导入模块。

更多

https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

【讨论】:

  • 不幸的是,你似乎是对的......虽然真的很可悲,打字稿应该有这种东西的全球范围。不管怎样,谢谢!
猜你喜欢
  • 2021-11-04
  • 1970-01-01
  • 2016-03-12
  • 2016-12-06
  • 2017-07-21
  • 1970-01-01
  • 2021-09-22
  • 2013-09-19
  • 2020-11-22
相关资源
最近更新 更多