NodeJS中的现有项目,我正在用TypeScript编写单个新项目部分(在本例中是我的CLI)。
我的文件夹看起来像这样:
|_ cli.ts << New file that describes new functionality
|_ old-lib.js << Existing large library
在cli.ts
我不知道如何加入old-lib.js
。我很熟悉在导入Node模块时使用环境*.d.ts
文件(它位于node_modules
)。当我尝试包含本地JavaScript文件时,会出现此问题。
第一种方法满足TypeScript编译器但是扰乱了Node:
/// <reference path="modules.d.ts" />
import oldLib = require('old-lib');
由于模块名称开头缺少node_modules
,NodeJS在./
中查找包。
错误:找不到模块'old-lib'
使用NodeJS require语法。这无法匹配modules.d.ts
文件中的条目:
import oldLib = require('./old-lib');
...错误TS2307:找不到模块'./old-lib'。
必须有一种方法可以逐步包含旧的JavaScript文件,而无需将它们重命名为TS文件并解决错误(即只需按照与节点模块相同的方式描述接口)。
如果我需要添加更多细节,请告诉我们,谢谢。
答案 0 :(得分:3)
错误TS2307:找不到模块'./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;