2016-03-02 90 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'; 
相關問題