Node.js 在编译后保留多个文件时使用TypeScript模块命名空间
我想利用TypeScript的名称空间/模块特性,同时保留多文件输出(每个.ts文件被编译成一个单独的.js文件) 我想要的组织和语法实际上与此QA相同: 但是,我没有让TS将所有文件编译成一个文件,而是在寻找一种方法来保留原始文件结构,并让编译器插入必要的Node.js 在编译后保留多个文件时使用TypeScript模块命名空间,node.js,typescript,Node.js,Typescript,我想利用TypeScript的名称空间/模块特性,同时保留多文件输出(每个.ts文件被编译成一个单独的.js文件) 我想要的组织和语法实际上与此QA相同: 但是,我没有让TS将所有文件编译成一个文件,而是在寻找一种方法来保留原始文件结构,并让编译器插入必要的require()语句,以使其在节点中工作 e、 g 应用程序ts /// <reference path="./model/animal.ts" /> var myAnimal = new MyNamespace.Model.A
require()
语句,以使其在节点中工作
e、 g
应用程序ts
/// <reference path="./model/animal.ts" />
var myAnimal = new MyNamespace.Model.Animal();
var MyNamespace = { Model: { Animal: require('./model/animal') } };
var myAnimal = new MyNamespace.Model.Animal()
或类似的要利用外部模块(正是为此目的而构建的),请使用以下功能:
import AnimalModel = "./model/animal.ts";
var myAnimal = new AnimalModel .Animal();
您不需要在animal.ts
文件中使用module
关键字
您还需要通过适当的编译器模块模式-对于AMD(RequireJS),您需要通过--模块AMD
tsc --module amd app.ts
史蒂夫说的。使用外部模块。只是修改一下语法:
import AnimalModel = require("./model/animal");
var myAnimal = new AnimalModel.Animal();
基本上与var/require
组合相同,只是使用import
告诉typescript查找.ts
文件并进行类型推断
还要为节点编译,请使用--module commonjs
模块标志
tsc --module commonjs app.ts
更多信息:导入外部模块时是否可以使用命名空间样式语法?i、 e.
import RB.Model.Animal=require('./模型/动物')代码>好吧,经过一些研究,似乎没有那么多。我在TypeScript Github上提出了一个问题: