通过StringLiteral导入模块

时间:2013-03-19 01:41:14

标签: typescript

Typescript规范提到您可以通过module(StringLiteral)导入模块:

Import by stringliteral

然而它对我不起作用:

module M
{
}
import test1 = M; // Okay 
import test2 = module(M); // Okay 
import test3 = module("M"); // Error 

我错过了什么吗?

2 个答案:

答案 0 :(得分:3)

当您使用字符串文字时,您告诉TypeScript这是一个外部模块。这将由具有顶级“导出”语句的文件夹中的该名称的另一个文件(即“M.ts”)定义(表示它是外部模块),或者通过声明存在这样的外部模块(例如,见“node.d.ts”在Node示例中键入,该示例声明了内置的Node模块。)

答案 1 :(得分:2)

module M { }定义内部模块,而不是外部模块。

import test1 = module(M);应该是语法的语法错误(M不是字符串文字)。

module("M")是一个错误,因为没有外部模块可以通过“M”解决(请参阅Bill的答案以获取更多信息)