无法将NodeJS模块导入Typescript代码

时间:2013-12-16 04:00:58

标签: node.js typescript

我有一个NodeJS + ExpressJS,我正在迁移到Typescript。我正在使用Node模块“Formidable”,我正在尝试创建一个打字稿定义。但是,由于错误,我无法将模块元素导入到Typescript代码中:

这里是模块定义:

/// <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();

这是由Typescript编译器

创建的“Upload.js”
var fs = require('fs');
var path = require('path');
var formidableModule = require('formidable');
var formidable = new formidableModule.Formidable();

这是错误

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

2 个答案:

答案 0 :(得分:0)

不确定ts但这是我导出整个类的方式(我有同样的问题)

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

答案 1 :(得分:0)

我认为您对Formidible的定义不正确。

基本上你在Formidable课程上未定义我在文档中没有看到https://github.com/felixge/node-formidable#api

也许是https://github.com/felixge/node-formidable#formidableincomingform

var form = new formidable.IncomingForm()