如何使用“require”导入命名空间

How to import a namespace with using 'require'?

本文关键字:导入 命名空间 require 何使用      更新时间:2023-09-26

在我正在处理的一些代码中,我混合了Coffeescript,Javascript和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,然后捆绑在一起。

理想情况下,我希望我的打字稿编译为

var a = new FooA();

因为我可以保证它们将在全局命名空间中。我该怎么做?

理想情况下,我希望我的打字稿编译为...因为我可以保证它们将在全局命名空间中。我该怎么做?

我相信你知道global不好,容易受到微妙的排序问题的影响(不仅仅是名称冲突):一些注意事项

可是。一旦您拥有根级别importexport ,文件就会成为模块(某些文档)。

所以:

/// <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