2016-03-02 31 views
2

如何在TypeScript中跨两个文件拆分类+子类?如何在两个文件中创建类和超类(Typescript)

// MongoModel.js 
class MongoModel { 
    ... 
} 
export = MongoModel; 

然后在另一个文件:

import MongoModel = require("./MongoModel"); 

但这给错误File ....MongoModel.ts is not a module

我是否需要使用一些模块语法捆绑在一起,就像一个Java包?

+1

你在编译器选项中使用'es6'目标吗?如果是这样,你必须像这样导出:'export class MongoModel {...}'并移除'export = MongoModel'。你可以像下面这样导入它:'从'。/ MongoModel''中导入{MongoModel} – eAbi

+0

或者你可以使用:'export default class MongoModel {...}'并导入它:'从MongoModel中导入MongoModel 。像这样,你可以在导入时重命名这个类,例如'从'。/ MongoModel''导入BaseMongoModel' – eAbi

+0

这些看起来很有帮助。添加答案,以便我可以接受! – dcsan

回答

3

当您在编译器配置中将目标设为es5时,用于导出和导入模块的版本可以正常工作。

当目标es6,你必须导出/导入模块采用以下方式:

// in MongoClass.ts 
export class MongoClass { 
    // ... code here 
} 

// and in other file 
import {MongoClass} from '/path/to/MongoClass'; 

,或者您可以使用default export;

// in MongoClass.ts 
export default class MongoClass { ... } 
export const somethingElse = 5; 

// and import in some other file 
// note that MongoClass can be renamed when is exported as default exported member 
import BaseMongo from '/path/to/MongoClass'; 

// this cannot be renamed when importing 
import {somethingElse} from '/path/to/MongoClass'; 
相关问题