2017-08-04 11 views
0

私はウィンストン(ノードlogginフレームワーク)で利用可能な関数/メソッドをラップしようとしていますが、私はそのインターフェイス、私は上記の署名を取ると「エラー」と呼ばれるメソッドを実装したいと思います Typescript:3つの異なるシグネチャでインターフェイスを実装する方法は?

interface LeveledLogMethod { 
    (msg: string, callback: LogCallback): LoggerInstance; 
    (msg: string, meta: any, callback: LogCallback): LoggerInstance; 
    (msg: string, ...meta: any[]): LoggerInstance; 
} 

を発見しました。

私はそれをラッピングするだけなので、winston関数を直接呼び出すことにします。

誰かがwinstonをよく知っていれば、基本的には2つのロガーの設定があり、すべての消費者がメインのロギングクラスを使い、ログレベルに応じて1番目のロガーまたは2番目のロガーを使用します。

誰でもご存知ですか?それはインタフェースが一致するように、あなたはあなたの関数にそれを追加するために、オプションのプロパティと型を使用することができます

interface A {} 
interface B {} 
interface C {} 

const variable: A|B|C = {}; 
+0

それはあなたが求めているものは明らかではありません。どこで 'error'関数を使いたいですか?それはグローバルなものかクラスメソッドか、後者の場合、クラスは正確に?詳細情報/コードを入力してください。 –

答えて

0

使用3つのインターフェイスこの方法。例えば

interface LeveledLogMethod { 
    (msg: string, callback:() => void): string; 
    (msg: string, meta: any, callback:() => void): string; 
    (msg: string, ...meta: any[]): string; 
} 

let error: LeveledLogMethod = function (msg: string, b:() => void | any, c?:() => void): string { 
    return ''; 
} 
関連する問題