Typescript找不到模块 [英] Typescript can't find modules
问题描述
我在Typescript中的一个文件(upload.ts)中导出了一个模块,我无法将其导入另一个文件(application.ts)而没有出现错误。此外,我无法导入ExpressJS。
I have an exported module in one file(upload.ts) in Typescript that I'm not able to import into another file(application.ts) without an error. Also, I'm not able to import ExpressJS.
这里是Upload.ts
Here's Upload.ts
/// <reference path="Main.d.ts" />
var fs = require('fs');
var path = require('path');
var formidable = require('formidable');
export class Upload{
public parse(req, res, next) {
...
}
public save(req, res, next) {
...
}
public respond(req, res, next) {
...
}
public errors(err, req, res, next) {
...
}
};
这里是application.ts
Here's application.ts
/// <reference path="Main.d.ts" />
var http = require("http");
import express = require("express");
import upload = require("Upload");
var upload = new upload.Upload();
var app = express.express();
var HOST = "localhost";
var PORT = 8080;
app.use(express.logger());
app.use(app.router);
var app = express.express();
代码抛出一个错误:未解析的函数或方法表达。我从 https://github.com/borisyankov/DefinitelyTyped导入express.d.ts / tree / master / express
The var app = express.express();
code throws an error: Unresolved function or method express. I've imported express.d.ts from https://github.com/borisyankov/DefinitelyTyped/tree/master/express
以下是错误:
module.js:340
throw err;
^
Error: Cannot find module 'upload'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\Users\Me\WebstormProjects\untitled\server\main.js:12:14)
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 Function.Module.runMain (module.js:497:10)
这是头文件,它引用两者:
Here's the header file, that references to both:
/// <reference path="upload.ts" />
/// <reference path="node.d.ts" />
/// <reference path="application.ts" />
/// <reference path="express.d.ts" />
推荐答案
您需要:
- 确保将
express.d.ts
和node.d.ts
到您的项目目录,您的应用程序文件附近 - 将它们导入到您的应用程序
- make sure to put both
express.d.ts
andnode.d.ts
into your project directory, near your application files - import them into your application
示例:
/// <reference path="libs/express.d.ts" />
/// <reference path="libs/node.d.ts" />
import http = require("http");
import express = require("express");
import upload = require("Upload");
var upload = new upload.Upload();
var app = express();
上传
模块可以以类似的方式引用。
BTW,你的代码看起来更像是javascript,然后是typescript
Upload
module can be referenced in similar way.
BTW, your code looks more like javascript then typescript
这篇关于Typescript找不到模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!