2016-03-16 74 views
0

多個文件,這就是我所謂的「東西」第一個庫:導出和導入與CommonJS的

//animals.ts 
module Animals { 
    export class Cat { 
     public name = "cat"; 
    } 

    export class Dog { 
     public name = "dog"; 
    } 
} 

export = Animals; 


//houses.ts 
module Houses { 
    export class Big { 
     public name = "big"; 
    } 

    export class Small { 
     public name = "small"; 
    } 
} 

export = Houses; 

現在,我想這兩個模塊導入到第二個庫。 我應該如何設置我的第一個庫的package.json? 應該是什麼主要和typings值?

我創建了一個名爲index.ts新文件:

import Animals = require("./animals"); 
import Houses = require("./houses"); 

export var animals = Animals; 
export var houses = Houses; 

,然後我導入像這樣在第二個庫:

import { animals } from "things"; 

這是正確的嗎?最好的解決方法是什麼?

+0

如果您正在做節點js,則不需要使用TypeScript內部模塊(即名稱空間)。只需導出沒有模塊封裝的類,而不使用exports = Animals。 –

+0

我在ReactJS中有同樣的疑問,可以按如下方式使用 'export const Cat = require('。Cat')。default' – Malaba

回答

1

相反的:

import Animals = require("./animals"); 
import Houses = require("./houses"); 

export var animals = Animals; 
export var houses = Houses; 

我會做:

export import Animals = require("./animals"); 
export import Houses = require("./houses"); 

由於這暴露了它無論是在變量聲明空間(more)。除此之外