2016-04-11 25 views
0

私が作業しているライブラリは、JSON.parseに2次機能を追加します。もちろん組み込みオブジェクト(ただしwritable)の組み込みメソッドです。私はtypescriptですコンパイラが新しい機能について知っているように、次の過負荷署名を追加する必要があります。TypeScriptの組み込みオブジェクトのメソッドに過負荷を追加する

<T>(text: string, type: { new(): T }) => T 

もちろん、私はlib.d.tsに触れる控えるでしょう。

JSONインターフェイス全体を再宣言し、そのタイプのグローバルJSON変数を作成しようとしましたが、新しいものを追加する以外にすべての組み込みコールシグネチャを複製しました。

私はちょうど新しい署名でJSONインタフェースを再宣言した場合、全部が正常に動作しているように、新しいメソッドオーバーロードは、内蔵のものと一緒に受け入れられているが、これは単なるハックと壊れやすいようだ:

declare interface JSON { 
    parse<T>(text: string, type: { new(): T }): T; 
} 

declare var JSON: JSON; 

は、どのようにして正しくメソッドオーバーロードで組み込みオブジェクトを拡張しますか?

答えて

関連する問題