我希望能够在我使用该模块的值的所有位置前面输入模块名称(甚至是模块的别名)。 (我不必例如使用C预处理器,所以我可以做#include类型的东西。)
(关闭但没有雪茄:Angular 2 import statement wildcard syntax)
我想要
import * from "./MyModule";
console.log( foobar );
而不是恼人的东西,如:
console.log( MyModule.foobar )
或:
import * as M from "./MyModule";
console.log( M.foobar );
答案 0 :(得分:1)
Typescript通配符将所有模块名称导入当前命名空间?
这是不好的做法为什么?
假设您在MyModule中有几百个模块,并且您想要导入所有想到要导入的不必要的模块,您可能不会使用这些模块将占用内存并使您的应用程序变慢,您应该导入导入只有你想要使用的模块。
e.g
import {A, D} from './MyModules';
如果您仍想使用将导入所有模块的外卡
例如
import * as http from "http"
那么你也应该使用树摇动,所以在部署你的应用程序时你可以摆脱所有其他不必要的模块。
希望这有帮助
答案 1 :(得分:1)
import * from "./MyModule";
不是ES Module规范的一部分。您不能简单地将成员注入范围而不命名它们。只要模块发生变化,就会出现标识符冲突。
正如@ haim770在他的评论中指出的那样,这非常类似于备受诟病的(并且非常正确)with
陈述。
根本不允许。