"导出为命名空间foo"的目的是什么?

时间:2017-06-14 21:18:45

标签: typescript

我使用了一些* .d.ts文件,我在其中的许多文件中看到以下两行:

//foo.d.ts
export = foo;
export as namespace foo;

declare var foo;

[...]

我可以理解,在前者(export = foo)中,oof是导出的东西。但是export作为名称空间foo是什么意思?应该如何从外面消费或使用?

在react ambient declaratin文件的情况下,它说:

export = React;
export as namespace React;

declare namespace React {
[...]

可以使用以下命令导出React名称空间:

export declare namespace React {[...]

1 个答案:

答案 0 :(得分:0)

以下是我根据此文档了解的内容:https://www.typescriptlang.org/docs/handbook/modules.html#umd-modules

当您在声明文件(* .d.ts)中编写$array = [ "test1_test2_test3" => "result", "category_slug" => "the_slug" ]; $array = array_map(function ($key, $value) { $keys = array_reverse(explode('_', $key)); while($key = array_shift($keys)) { $value = [$key => $value]; } return $value; }, array_keys($array), $array); $array = call_user_func_array('array_merge', $array); var_dump($array); /** array(2) { ["test1"]=> array(1) { ["test2"]=> array(1) { ["test3"]=> string(6) "result" } } ["category"]=> array(1) { ["slug"]=> string(8) "the_slug" } } */ 时,您会告诉NSString *myText = _texteditor.text; 可以用来将整个导出的内容作为脚本文件中的全局变量来访问。

脚本文件是没有export as namespace React;React的打字稿文件,因此可以在浏览器内的export内使用。

请注意,这仅适用于您导出内容的情况,在这种情况下import告诉您导出名称空间。

<script src="yourFile.js">不等效,因为对于commonJs,它不会导出为export = React,而对于脚本文件,它只是不起作用(不会将命名空间添加到全局变量中)。 / p>

对于您自己的模块,如果您希望仅使用export declare namespace React,我建议您避免使用名称空间,如果您只有一个导出,请使用defaultcommonjs

另见: