在不使用任何导出

时间:2017-01-07 02:39:24

标签: javascript typescript import

我对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文件,我不知道这是否会改变任何内容。

1 个答案:

答案 0 :(得分:7)

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

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

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

来自documentation

  

仅为副作用导入模块

     

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

import "./my-module.js";