Javascript 现有节点模块的TypeScript定义文件
在我的TypeScript项目中,我想使用 Logdown可以在Node.js应用程序中使用,如下所示: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
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存储库的
文件中创建了一个“typings”条目,并将其指向dopackage.json
(根据“”)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
中。