我有一个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
答案 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()