现有节点模块的TypeScript定义文件
TypeScript definition file for existing node module
在我的TypeScript项目中,我想使用Logdown。
Logdown可以在Node.js应用程序中这样使用:
var Logdown = require('logdown')
var logger = new Logdown({prefix: 'test'})
logger.info('Hello World');
不幸的是,Logdown不提供声明,所以我想写一个声明文件。
为了启动这个小项目,我做了以下工作:
- 我克隆了Logdown存储库
- 我在克隆的Logdown存储库的
package.json
文件中创建了一个"typings"条目,并将其指向dist/logdown.d.ts
(根据"在你的npm包中包含声明") 我将克隆的Logdown存储库作为npm包( - 我在TypeScript应用程序中运行
npm link logdown
,以将此Node模块引用指向我的克隆存储库
npm link
)在本地可用之后,我创建了logdown.d.ts
文件的内容:
export declare class Logdown {
constructor(options: Object);
public info(text: string): string;
}
我希望我现在可以在我的TypeScript项目中使用Logdown,像这样:
import Logdown = require("logdown");
let logger: Logdown = new Logdown();
logger.info('Hello World!');
但是当我编译项目时,我得到以下错误:
错误TS2304:找不到名称'Logdown'.
错误TS2351:不能对类型缺乏调用或构造签名的表达式使用'new' .
我让它工作:我需要改变导出格式为export = Logdown;
在定义文件(.d.ts
)和导入格式为import Logdown = require("logdown");
在我的TypeScript应用程序。
Logdown.d。ts(导出定义)
declare class Logdown {
constructor(options?: Object);
public log(...args: string[]): void;
public info(...args: string[]): void;
public warn(...args: string[]): void;
public debug(...args: string[]): void;
public error(...args: string[]): void;
public static disable(...args: string[]): void;
public static enable(...args: string[]): void;
}
export = Logdown;
TypeScript Application (Import)
import Logdown = require("logdown");
...
let logger: Logdown = new Logdown();
logger.info('Hello from Logdown!');
相关文章:
- 为其他JS生成定义“;编译器”;来自TypeScript定义文件
- typescript定义构造函数或函数
- TypeScript定义外部类
- 我是否必须在每个文件中引用 TypeScript 定义
- Typescript定义:如何在类内部声明类
- 有没有一种简单的方法来安装TypeScript定义
- 如何为 commonjs 和 globals 生成 TypeScript 定义
- TypeScript 定义:名称相同,但模块内外的类型不同
- 尽可能创建最简单的typescript定义文件
- 是否应将TypeScript定义文件包含在_references.js中
- 在Backbone中使用Typescript定义一个collection's模型类型
- addmixin函数的Typescript定义
- 如何为新库编写typescript定义文件
- 当我使用的TypeScript定义文件缺少一个定义时,我该怎么办?
- 现有节点模块的TypeScript定义文件
- 如何在typescript定义中指定松散类型的对象字面量
- react-boostrap-typeahead的自定义Typescript定义
- 如何在没有TypeScript定义的情况下导入npm包,以便IDE仍然提供智能感知
- 命名空间类的Typescript定义
- 剑道,TypeScript定义错误: