我正在尝试通过指定文件夹名称来索取带有index.js的文件夹
import xyz = require("./xyz");
并获得编译错误“无法解析外部模块xyz。模块不能别名为非模块类型。”
如果我指定索引
import xyz = require("./xyz/index");
它有效。
如果我这样做
var xyz = require("./xyz");
它有效,但我在xyz上没有智能感知。
Typescript不支持该功能吗?
答案 0 :(得分:2)
不,TypeScript不遵循Node.js的模块解析规则,因为它们非常特定于该平台。 TypeScript支持多个不遵循Node.js约定的平台。
TypeScript规范说明了相对模块的分辨率:
如果import声明指定了相对外部模块名称,则相对于引用模块的文件路径的目录解析名称。程序必须包含具有生成的文件路径的模块,否则会发生错误。例如,在具有文件路径的模块中 'C:/ src / ui / main',外部模块用文件命名'./editor'和'../lib/io'参考模块 路径'C:/ src / ui / editor'和'C:/ src / lib / io'。