在我的TypeScript项目中,我想使用Logdown。
Logdown可以在Node.js应用程序中使用,如下所示:
var Logdown = require('logdown')
var logger = new Logdown({prefix: 'test'})
logger.info('Hello World');
不幸的是,Logdown不提供声明,因此我想编写一个声明文件。
为了启动这个小项目,我做了以下工作:
package.json
文件中创建了一个“typings”条目,并指出它可以执行dist/logdown.d.ts
(根据“Including declarations in your npm package”)npm link
)本地提供npm link logdown
,以将此Node模块引用指向我的克隆存储库之后,我为
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!');
但是在编译项目时,出现以下错误:
最佳答案
我知道了:我需要在TypeScript应用程序中将定义文件(export = Logdown;
)中的导出格式更改为.d.ts
,并将导入格式更改为import Logdown = require("logdown");
。
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应用程序(导入)
import Logdown = require("logdown");
...
let logger: Logdown = new Logdown();
logger.info('Hello from Logdown!');