Javascript 现有节点模块的TypeScript定义文件

Javascript 现有节点模块的TypeScript定义文件,javascript,node.js,typescript,commonjs,typescript-typings,Javascript,Node.js,Typescript,Commonjs,Typescript Typings,在我的TypeScript项目中,我想使用 Logdown可以在Node.js应用程序中使用,如下所示: var Logdown = require('logdown') var logger = new Logdown({prefix: 'test'}) logger.info('Hello World'); import Logdown = require("logdown"); let logger: Logdown = new Logdown(); logger.info('Hello

在我的TypeScript项目中,我想使用

Logdown可以在Node.js应用程序中使用,如下所示:

var Logdown = require('logdown')
var logger = new Logdown({prefix: 'test'})
logger.info('Hello World');
import Logdown = require("logdown");
let logger: Logdown = new Logdown();
logger.info('Hello World!');
不幸的是,Logdown不提供声明,所以我想写一个声明文件

为了启动这个小项目,我做了以下工作:

  • 我克隆了登录存储库
  • 我在克隆的Logdown存储库的
    package.json
    文件中创建了一个“typings”条目,并将其指向do
    dist/Logdown.d.ts
    (根据“”)
  • 我将克隆的登录存储库作为npm包在本地提供(
    npm link
  • 我在TypeScript应用程序中运行了
    npm link logdown
    ,将此节点模块引用指向克隆的存储库
之后,我为
logdown.d.ts
文件创建了内容:

export declare class Logdown {
  constructor(options: Object);
  public info(text: string): string;
}
我希望现在可以在我的TypeScript项目中使用Logdown,如下所示:

var Logdown = require('logdown')
var logger = new Logdown({prefix: 'test'})
logger.info('Hello World');
import Logdown = require("logdown");
let logger: Logdown = new Logdown();
logger.info('Hello World!');
但是,当我编译项目时,会出现以下错误:

错误TS2304:找不到名称“Logdown”

错误TS2351:无法将“new”与类型缺少调用或构造签名的表达式一起使用


我让它工作了:我需要将导出格式更改为
export=Logdown.d.ts
)中的code>,并将导入格式设置为
import Logdown=require(“Logdown”)在我的TypeScript应用程序中

Logdown.d.ts(导出定义)

类型脚本应用程序(导入)


它可能是一个简单的打字错误:在
package.json
中拼写为
types
,而不是
typings
。此外,这不适用于2.0以上的typescript。设置正常。请注意,“typings”字段与“types”同义。我认为问题出在
logdown.d.ts
中。