私が作業しているライブラリは、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;
は、どのようにして正しくメソッドオーバーロードで組み込みオブジェクトを拡張しますか?