2015-12-03 79 views
0

所以我建立一個打字稿的圖書館項目Node.js。我必須至少使用一個外部參考--- node.d.ts將外部模塊導入內部模塊?

我試圖使用編譯器的--out lib.js --declaration功能來生成代碼。但是,如果沒有內部模塊/名稱空間,lib.js文件及其定義是空的。而且,我想在導出爲庫時保留一個不錯的名稱空間。

對於其他人使用這個庫中的TS,像

/// <reference path="node_modules/mylib/definitions.d.ts"/> 
import mylib = require('mylib'); 
var A = mylib.A; 
var AsubB = mylib.a.B; 

回答

0

爲了能夠出口的庫,你需要使用的模塊,並可以接觸需要導出他們的命名空間。

上demo.ts文件創建模塊動物園:

module zoo { 
     function open(): void{ 
      console.log("hello"); 
     }; 
} 

declare module "zoo" 
{ 
    export = zoo; 
} 

記住設置編譯器選項:

tsc demo.ts --module commonjs 

與用法:

import x = require('zoo'); 
    x.open(); 
    // or 
    zoo.open(); 

您可以檢查此鏈接應幫助更多關於使用nodejs的打字稿: https://basarat.gitbooks.io/typescript/content/docs/node/nodejs.html 並用於使用外部模塊https://basarat.gitbooks.io/typescript/content/docs/project/external-modules.html