在我正在处理的一些代码中,我混合了 Coffeescript、Javascript 和 Typescript 文件。
在我的 Typescript 文件中,我使用访问类型定义
/// <reference path="foo.d.ts" />
import {FooA, FooB} from "foo";
var a:FooA = new FooA() // etc...
这会产生 Javascript
var foo_1 = require("foo");
var a = new foo_1.FooA();
这很好。但是,我的工作流程是这样的,我不使用模块系统。所有非 JS 文件都由 Grunt 处理并编译为 JS,然后捆绑在一起。
理想情况下,我希望我的 Typescript 编译为
var a = new FooA();
因为我可以保证它们将位于全局命名空间中。 我怎样才能做到这一点?
最佳答案
Ideally I would want my Typescript to compile to ... as I can guarantee they would be in the global namespace. How can I do this?
我相信您知道 global
很糟糕,并且容易受到微妙的排序问题(不仅仅是名称冲突):some notes
也就是说。一旦您具有根级别导入
或导出
( some docs ),文件就会成为模块。
所以:
/// <reference path="foo.d.ts" />
import {FooA, FooB} from "foo";
var a:FooA = new FooA() // etc...
应该是这样的:
/// <reference path="foo.d.ts" />
var a:FooA = new FooA() // etc...
即FooA
应该在全局范围内可用。您需要检查您的 foo.d.ts
。这将有帮助:https://basarat.gitbooks.io/typescript/content/docs/types/migrating.html
关于javascript - 如何使用 'require' 导入命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35918820/