Typescript找不到模块 [英] Typescript can't find modules

查看:1522
本文介绍了Typescript找不到模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在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 and node.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆