2013-12-16 59 views
0

我有一個NodeJS + ExpressJS,我正在遷移到Typescript。我正在使用一個節點模塊「Formidable」,我試圖創建一個打印機定義。但是,我不能導入模塊元素融入打字稿代碼由於錯誤:無法導入NodeJS模塊到Typescript代碼

這裏; S模塊定義:

/// <reference path="../Main.d.ts" /> 

declare module "formidable" { 
    export class Formidable { 
     constructor(); 
     IncomingForm() : Form; 
    } 

    export class Form{ 
     encoding : String; 
     uploadDir : String; 
     keepExtensions : Boolean; 
     type : String; 
     parse(String, Function) : void; 
    } 

} 

下面是導入模塊文件「Upload.ts」

import fs = require('fs'); 
import path = require('path'); 
import formidableModule = require('formidable'); 
var formidable = new formidableModule.Formidable(); 

下面是由編譯器打字稿

var fs = require('fs'); 
var path = require('path'); 
var formidableModule = require('formidable'); 
var formidable = new formidableModule.Formidable(); 

下面是創建 「Upload.js」錯誤

C:\Users\Me\WebstormProjects\Core\lib\Upload.js:5 
var formidable = new formidableModule.Formidable(); 
       ^
TypeError: undefined is not a function 
    at Object.<anonymous> (C:\Users\Anjan\WebstormProjects\Core\lib\Upload.js:5:18) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (C:\Users\Anjan\WebstormProjects\Core\app.js:9:20) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 

Process finished with exit code 8 

回答

0

不知道約ts,但是這是我的整個出口類(我有同樣的問題)

module.exports.formidable = { 
    method1: function(req){ 
     /// code here 
    }, 
    method2: function(param1, param2) { 
      ///code here 
    } 
} 
+0

這是做它沒有的NodeJS TS的方式 - 它工作正常與我無關。但是,因爲我正在遷移到TS,所以我正在嘗試着如何在TS中做到這一點。 – EternallyCurious