如何在大型节点上逐步引入打字稿.JS代码基础?

时间:2015-04-08 20:10:28

标签: javascript node.js typescript

我在基于NodeJS的JavaScript中实现了相当大的代码基础。我想尝试一下打字稿,并希望在打字稿中实现所有新模块。只是为了了解它的表现以及我喜欢这个想法。我确实需要能够随时恢复,所以我不想为迁移付出太多努力。

我开始使用WebStorm和Gulp来支持打字稿。我创建了一个新模块并使用了import / require组合。

import settings = require("./settings");
import _ = require("lodash-node");

通过这样做,我收到了一些错误。

Error:(22, 27) TS2307: Cannot find external module './settings'.
Error:(23, 20) TS2307: Cannot find external module 'lodash-node'.

这些模块没有打字稿定义文件,而且是普通的javascript模块(lodash显然是一个外部库)。我确实有一些依赖项,我不想手动创建定义,即使它们只是空的存根。如上所述,我确实希望尽可能简化集成。

是否有一般旗帜或类似的东西?

2 个答案:

答案 0 :(得分:1)

最简单的方法(如果您不想要模块的类型信息)是写:

declare module "lodash-node" {
  var notTyped: any; // naming is unimportant here
  export = notTyped;
}

将其放在单独的.d.ts文件中,/// <reference>。然后_在您的实施文件中将是any类型,并且编译器不会抱怨您不知道您正在谈论的模块。

答案 1 :(得分:0)

您可以使用webpack&#39; typescript-loader并从那里开始。确保将target: 'node'放在您的webpack配置中,这样您就不会拥有所有浏览器垃圾。