Typescript 规范提到您可以通过以下方式导入模块 module(StringLiteral)
:
但是它对我不起作用:
module M
{
}
import test1 = M; // Okay
import test2 = module(M); // Okay
import test3 = module("M"); // Error
我错过了什么吗?
Typescript 规范提到您可以通过以下方式导入模块 module(StringLiteral)
:
但是它对我不起作用:
module M
{
}
import test1 = M; // Okay
import test2 = module(M); // Okay
import test3 = module("M"); // Error
我错过了什么吗?
当您使用字符串文字时,您是在告诉 TypeScript 这是一个外部模块。这将由文件夹中具有顶级“export”语句(表示它是外部模块)的另一个具有该名称的文件(即“M.ts”)定义,或者通过声明此类外部模块存在(例如,参见“node.d.ts”键入声明内置节点模块的节点示例)。
module M { }
定义一个内部模块,而不是一个外部模块。
import test1 = module(M);
应该是每个语法的语法错误(M
不是字符串文字)。
module("M")
是一个错误,因为“M”没有可以解决的外部模块(有关更多信息,请参见比尔的回答)