あなたのカスタムログメソッドにwindow.console
をバインドし、それが呼び出されたときにコードが元のスコープ内で実行されるように、機能を返すために.bind()
methodを使用することができます。
class LoggerService {
public log = console.log.bind(window.console);
}
// ...or annotated:
class LoggerService {
public log: (message) => void = console.log.bind(window.console);
}
あなたの条件文に追加したい場合は、::ロガーサービスのlog
メソッドを呼び出すときにそうすることで
、行番号が保存されます
class LoggerService {
public log = clientSideLogging ? console.log.bind(window.console) :() => {};
}
ここでan exampleコンパイルされたTypeScriptコードを使用します。あなたがlog
メソッドの内部で、追加のロジックを実装したい場合は、あなたが利用することができる、上記のワンライナーのソリューションは別に
戻り、
window.console
にバインドされている
console.log
関数を呼び出します
getter。
class LoggerService {
public get log(): Function {
// Implemnt server-side logging
return console.log.bind(window.console);
}
}
あなたが言うことができるように、それはそれは別のスコープ内で直接呼び出されたとき、それは行番号を保持されませんので、返されるconsole.log
機能にとって重要です。その後
あなたの条件文に追加したい場合:ここで
class LoggerService {
public get log(): Function {
const log = console.log.bind(window.console);
// Implemnt server-side logging
return clientSideLogging ? log :() => {};
}
}
がコンパイル活字体コードでan exampleです。
これはタイプコピーのコンパイル時エラーですか? – Aravind