TypeScript模块命名空间,同时保留编译后的多个文件
我想利用TypeScript的名称空间/模块function,同时保留多文件输出(每个.ts文件被编译为单独的.js文件)。
我期望的组织和语法与本质量保证几乎相同: 在多个文件中的TypeScript模块命名空间 。
然而,我没有将TS编译成一个文件,而是寻找一种方法来保存原始文件结构,并让编译器注入必要的require()
语句,使其在Node中工作。
例如
app.ts
/// <reference path="./model/animal.ts" /> var myAnimal = new MyNamespace.Model.Animal();
会编译成
app.js
var MyNamespace = { Model: { Animal: require('./model/animal') } }; var myAnimal = new MyNamespace.Model.Animal()
或类似的
什么史蒂夫说。 使用外部模块。 只是修正语法:
import AnimalModel = require("./model/animal"); var myAnimal = new AnimalModel.Animal();
与var/require
组合基本相同,不同的是使用import
来告诉打字稿寻找.ts
文件并进行types推断。
还要为Node编译使用--module commonjs
模块标志。
tsc --module commonjs app.ts
更多: https : //www.youtube.com/watch?v=KDrWLMUY0R0&hd=1
为了充分利用外部模块(专为此目的而构build),请使用以下内容:
import AnimalModel = "./model/animal.ts"; var myAnimal = new AnimalModel .Animal();
您不需要在animal.ts
文件中使用module
关键字。
您还需要传递相应的编译器模块模式 – 对于您传递的AMD(RequireJS)–module --module amd
…
tsc --module amd app.ts