我对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文件,我不知道这是否会改变任何内容。
答案 0 :(得分:7)
如果您有一个命名导入并且未使用该名称,则会忽略导入。
对于具有副作用的导入 - 并且没有您希望使用的名称 - 您可以使用以下语法:
import "./some-module-with-side-effects";
仅为副作用导入模块
虽然不推荐练习,但有些模块设置了一些可供其他模块使用的全局状态。这些模块可能没有任何出口,或者消费者对其任何出口都不感兴趣。要导入这些模块,请使用:
import "./my-module.js";