【问题标题】:Importing a typescript file without using any of the exports在不使用任何导出的情况下导入打字稿文件
【发布时间】:2017-05-21 21:33:18
【问题描述】:

我是 TypeScript 的新手,我有一个 main.tc,我在其中导入 items.tc,其中包含和导出一些项目类,并将类类型添加到 itemManager.tc 的数组中。问题是,如果我在 main.tc 中以某种方式从 items.tc 中使用至少 1 个导出,它们只会被添加到数组中,即使只是记录导出工作。

这是我的文件的一些缩短版本:

main.tc

import * as Items from "./item";
import * as ItemManager from "./itemManager";

console.log(ItemManager.list) //List is empty

items.tc

import * as ItemManager from "./itemManager";

export class Item1
{
    constructor()
    {

    }
}
ItemManager.list.push(typeof Item1);

itemManager.tc

export const list = [];

如果我将console.log(Items.Item1) 添加到我的main.tc,ItemManger.list 将包含所有项目,但这样做并不理想。有没有办法确保导入的文件运行?还是我应该使用除了导入之外的其他东西?

我正在使用 webpack 将其编译为单个 .js 文件,我不知道这是否会改变任何内容。

【问题讨论】:

    标签: javascript typescript import


    【解决方案1】:

    如果您有一个命名导入并且未使用该名称,则导入将被忽略。

    对于具有副作用的导入 - 并且没有您希望使用的名称 - 您可以使用以下语法:

    import "./some-module-with-side-effects";
    

    来自documentation

    仅为副作用导入模块

    虽然不是推荐的做法,但一些模块设置了一些可以被其他模块使用的全局状态。这些模块可能没有任何导出,或者消费者对它们的任何导出都不感兴趣。要导入这些模块,请使用:

    import "./my-module.js";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-01
      • 2018-07-26
      • 2017-12-02
      • 2018-08-29
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多