javascript - 如何使用 'require' 导入命名空间?

标签 javascript module coffeescript typescript gruntjs

在我正在处理的一些代码中,我混合了 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/

相关文章:

javascript - Coffeescript——如何干掉这两条语句

javascript - 如何通过检查 Angular 2 中的 TD 将 TH 添加到 TABLE 中?

javascript - 如何用angular 4创建融合图

javascript - 管理 Backbone.js 页面转换

javascript - 无法更改 d3.js 矩形的填充

node.js - 使用 Jenkins 自动化 CoffeeScript 编译

javascript - 设置 Highcharts y 轴标签格式

c - Beaglebone Black GPIO 控制非常缓慢地运行步进电机。我怎样才能提高速度?

python - 为什么我无法导入 re 模块?

ruby-on-rails - rails : Make request to development environment while using tests