如何在大型nodeJS代码的基础上逐步引入typescript

How to introduce typescript on a big nodeJS code basis step by step?

本文关键字:typescript 基础上 大型 nodeJS 代码      更新时间:2023-09-26

我确实拥有相当大的基于NodeJS的JavaScript实现的代码基础。我确实想尝试一下typescript,并希望在typescript中实现所有新模块。只是想看看它的表现,以及我对这个想法的喜爱程度。我确实需要能够在任何时候恢复,所以我不想在迁移上投入太多精力。

我开始使用WebStorm和Gulp来支持typescript。我创建了一个新模块,并使用了import/request组合。

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'.

这些模块没有typescript定义文件,是纯javascript模块(lodash显然是一个外部库)。我确实有几个依赖项,我不想手动创建定义,即使它们只是空的存根。如前所述,我确实希望保持集成尽可能简单。

有一面国旗或类似的东西我可以设置吗?

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

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

把它放在一个单独的.d.ts文件和/// <reference>中。然后_在实现文件中的类型将是any,编译器不会抱怨不知道你在说什么模块。

您可以使用webpack的typescript加载程序并从那里开始。确保你把target: 'node'放在你的webpack配置中,这样你就不会有所有的浏览器垃圾。