我希望能够不必在使用该模块值的所有位置前面键入模块名称(甚至是模块的别名)。(例如,我宁愿不必求助于运行 C 预处理器,这样我就可以做 #include 类型的东西。
(关闭但没有雪茄:Angular 2 导入语句通配符语法)
我要
import * from "./MyModule";
console.log( foobar );
而不是烦人的东西,例如:
console.log( MyModule.foobar )
或:
import * as M from "./MyModule";
console.log( M.foobar );
import * from "./MyModule";
不是 ES 模块规范的一部分。不能简单地将成员注入到作用域中而不命名它们。每当模块更改时,都可能出现标识符冲突。
正如@haim770在他的评论中指出的那样,这非常像with
声明中饱受诟病(而且非常正确)。
这是根本不允许的。
Typescript 通配符将所有模块名称导入当前命名空间?
这是不好的做法,为什么?
假设您的 MyModule 中有数百个模块,并且您想要导入所有考虑将要导入多少不必要的模块,这些模块您可能不会使用,这会占用内存并使您的应用程序变慢,您应该导入导入您唯一要使用的模块。
例如
import {A, D} from './MyModules';
如果您仍然想使用通配符,它将导入所有模块
例如
import * as http from "http"
然后,您还应该使用树摇晃,以便在部署应用程序时可以删除所有其他不必要的模块。
希望这有帮助