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

时间:2015-08-05 16:19:04

标签: javascript node.js typescript commonjs

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文件时,会出现此问题。

方法1

第一种方法满足TypeScript编译器但是扰乱了Node:

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

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

  

错误:找不到模块'old-lib'

方法2

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

  

...错误TS2307:找不到模块'./old-lib'。

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

如果我需要添加更多细节,请告诉我们,谢谢。

1 个答案:

答案 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;