2016-07-10 4 views
1

私はライブラリをnode_modules/にインストールしています。タキシードを使用するためには、高速のハックが必要です。フォルダtypings/modulesには、モジュールの名前とindex.d.tsファイルのフォルダが作成されました。そのファイルの中に、私はモジュールをインポートすることができるよtsの入力を作成するには

declare module "lib-name" { 
    export default class Logger { 
    constructor(namespace: string) 
    } 
} 

はありますが、私はlet l = new Lib('namespace');しようとすると、私は、あなたのタイピングでclassを持たなければならないとは思わないエラーcannot use 'with' an expression whose type lacks a call or construct signature

答えて

1

を取得しています。あなたが宣言すべきインタフェース契約です。

またドキュメントには、新しい表現がインタフェースでnew方法が必要であると述べている:https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html

は多分このような何かを試してみてください:

declare module "lib-name" { 
    interface Logger { 
    new (namespace: string): Logger 
    } 

    export var Logger: Logger; 
} 
+0

神はあなたを祝福します! –

関連する問題