我使用了一些* .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 {[...]
答案 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
,我建议您避免使用名称空间,如果您只有一个导出,请使用default
或commonjs
。
另见: