如何将本地 JavaScript 文件导入 NodeJS TypeScript 项目?

How to import local JavaScript file into NodeJS TypeScript project?

NodeJS 中的现有项目,我正在用 TypeScript 编写项目的单个新部分(在本例中是我的 CLI)。

我的文件夹看起来像这样:

|_ cli.ts << New file that describes new functionality
|_ old-lib.js << Existing large library

cli.ts 中,我不知道如何包含 old-lib.js。我熟悉在导入 Node 模块(驻留在 node_modules 中)时使用环境 *.d.ts 文件。当我尝试包含本地 JavaScript 文件时出现问题。

方法一

第一种方法满足 TypeScript 编译器的要求,但让 Node 不满意:

/// <reference path="modules.d.ts" />
import oldLib = require('old-lib');

由于模块名称开头缺少 ./,NodeJS 在 node_modules 中查找包。

Error: Cannot find module 'old-lib'

方法二

使用 NodeJS require 语法。这与 modules.d.ts 文件中的条目不匹配: import oldLib = require('./old-lib');

... error TS2307: Cannot find module './old-lib'.

必须有一种方法可以增量地包含遗留 JavaScript 文件,而无需将它们重命名为 TS 文件并解决错误(即,仅以与节点模块相同的方式描述接口)。

如果我需要添加更多详细信息,请告诉我,谢谢。

error TS2307: Cannot find module './old-lib'.

重新组织您的项目,以便您拥有:

|_ cli.ts << New file that describes new functionality
|_ old-lib.js << Existing large library
|_ old-lib.d.ts << Existing large library

并将如下内容放入这个新的 old-lib.d.ts 文件中:

export var foo:number; 
export var bar:string;