加载打字稿外部模块而不导入?

时间:2014-07-15 16:06:16

标签: node.js express typescript

我目前很头疼,因为我正在编写一个nodejs打字稿应用程序,它基本上是一个大的内部模块(分布在很多文件上并作为一个输出)。

现在我遇到的问题是express.d.ts(在明确键入时找到)被写入,所以它只能作为外部模块加载:import express = require("express");然而这意味着我必须编译我的应用程序将import关键字放入其中的那一刻作为单个文件将其视为您的模块现在是外部的,这是我不想要的。

我有什么方法可以更改此代码:

/// <reference path="../../../typescript-descriptors/express/express.d.ts" />
import express = require('express');
var app = express();

app.get('/', (req: express.Request, res: express.Response) => {
    res.render('index');
});

所以它不需要导入,我只能var express = require("express");并且仍然可以获得类型安全吗?

由于我需要能够将TS逻辑拆分为多个文件而使用导入方法不允许这样做。

1 个答案:

答案 0 :(得分:0)

根据评论更新...

Express本身就是TypeScript称之为外部模块的东西。无法将外部模块导入内部模块 - 因此您无法在此实际获得所需内容。

但是,如果真正的潜在问题是......

  

因为我需要能够将TS逻辑拆分为多个文件而使用导入方法不允许这样做

什么阻止您简单地切换到外部模块,这允许您将逻辑分成多个文件并根据需要导入它们?而不是尝试将输出组合到一个文件中 - 依靠Node提供给您的简单模块加载,并且您重新回到游戏中!