2
在我的TypeScript項目中,我想使用Logdown。現有節點模塊的TypeScript定義文件
Logdown可以使Node.js應用程序中使用這樣的:
var Logdown = require('logdown')
var logger = new Logdown({prefix: 'test'})
logger.info('Hello World');
不幸的是,Logdown不提供報關單,所以我想寫一個聲明文件。
與Kickstart這個小項目,我做了以下內容:
- 我克隆Logdown庫
- 我創造了
package.json
文件克隆Logdown庫的「分型」項,並指出它做dist/logdown.d.ts
(據 「Including declarations in your npm package」) - 我做了我TypeScrip內的克隆Logdown庫當地現有的NPM包(
npm link
) - 我跑
npm link logdown
科技應用到這個節點模塊的參考點到我的克隆庫
之後,我創建了logdown.d.ts
文件中的內容:
export declare class Logdown {
constructor(options: Object);
public info(text: string): string;
}
我希望我可以在我的打字稿項目現在使用Logdown像這樣的:
import Logdown = require("logdown");
let logger: Logdown = new Logdown();
logger.info('Hello World!');
但是,當我編譯項目,我得到了以下錯誤:
錯誤TS2304:找不到名稱'Logdown'。
錯誤TS2351:不能對類型缺少調用或構造簽名的表達式使用'new'。
這可能是一個簡單的拼寫錯誤:它的拼寫''在包types' .json',而不是'typings'。此外,這不適用於2.0以上的打字稿。 – artem
設置沒問題。請注意,「類型」字段與「類型」同義。我認爲問題出現在'logdown.d.ts'中。 –