2017-07-17 11 views
1

フロータイプの定義ファイルを使用していますが、プラグインの定義を追加する必要があります。外部のフロータイプの定義ファイルをカスタマイズする方法

のは、NPMモジュールは次のようになり、外部フロー型指定された定義ファイルを持っているとしましょう:

declare class LibStatic { 
    func1(): string; 
} 

declare module 'lib' { 
    declare var exports: LibStatic; 
} 

declare var globalLib: LibStatic; 

必要func2新しいメソッドを動的にある場合、私は、外部フロー型指定された定義ファイルをカスタマイズする方法をLibStaticに追加されましたか?

+0

一般に、既存のタイプに動的にプロパティを追加することは、静的タイプのシステムと実際には互換性がありません。 – loganfsmyth

+0

@loganfsmythなぜこれはもはや静的ではないのか分かりません。私は定義済みの定義になるメソッドを追加する方法を探していますが、結果は静的型です。 – doberkofler

+0

プロパティが既にライブラリ自体にある場合、それらは 'flow-typed'の定義に含まれている必要があります。そうでない場合は、それらを追加したか、ライブラリのエクスポートが何とか動的であると推測されます。いずれの場合も輸出は静的ではありません。 – loganfsmyth

答えて

2

Bad Thing™のように聞こえます。事実の後で型を変更することを避けてください。そうしないと、混乱し、静的な型チェックの利点が失われます。それで、に次のように対応できます。

LibStaticからすべてを再エクスポートする独自のライブラリを作成します。そこに新しいメソッドを追加し、エクスポートされたタイプを完全に制御することができます。以前はLibStaticを使用していた場所で、自分のライブラリを使用してください。

+0

これはなぜ悪いことでしょうか?私の質問の具体的な使用例は、実際にはjQueryとプラグインシステムです。デフォルトのjQuery型定義ファイルにはコアコンポーネントが含まれていますが、インストールされているプラ​​グインによっては追加のメソッドを利用できるようになっています。 – doberkofler

関連する問題