typescriptのクラスメソッドに関数型インターフェイスを適用するにはどうすればよいですか?

リコ・ケーラー

class私が書いている多くのメソッドは、暗黙のうちに同じ関数型を持っています私がやりたいのは、この関数型を強制して、特定のメソッドが関数型に準拠する必要があることを明示的に述べることができるようにすることです。

例えば

interface MyFunctionType {(resource: string | Resource): Something}

私のクラスには、このインターフェースに準拠するいくつかのメソッドがあります。

class MyClass {
    // ...

    someMethod() { /*...*/ }

    someMethodThatConforms(resource: string | Resource) {
        // ...
        return new Something(/*...*/);
    }

    anotherMethodThatConforms(resource: string | Resource) {
        // ...
        return new Something(/*...*/);
    }

    someOtherMethod() { /*...*/ }

    // ...
}

私がいることを知っているsomeMethodThatConformsanotherMethodThatConformsインターフェースに準拠しますが、今、私はない方法を知りたい主張していることsomeMethodThatConformsanotherMethodThatConformsのインタフェースを準拠しなければなりませんMyFunctionType(Iチェンジた場合、そのことをMyFunctionType、エラーがスローされますか)?

ジョケスター

別のインターフェースを定義してMyClass実装することができます

interface MyFunctionType {(resource: string | Resource): Something}

interface FixedMethods {
    someMethodThatConforms: MyFunctionType;
    // you can add more
}

class MyClass implements FixedMethods {
    someMethodThatConforms(resource: string | Resource) {
        // this method will fail type check, until we return a Something
        return 1;
    }
}

より複雑な方法:mapped typeジェネリック型を作成するために使用します。

interface MyFunctionType { (resource: string | Resource): Something }

// a Mapped Type to fix methods, used in place of a interface
type FixedMethods<T extends string> = {
    [k in T]: MyFunctionType
}

class MyClass implements FixedMethods<"someMethodThatConforms" | "anotherMethodThatConforms"> {
    someMethodThatConforms(resource: string | Resource) {
        // this method will fail type check, until we return a Something
        return 1;
    }

    // it also complains about lack of "anotherMethodThatConforms" method
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Q&A-厳密に型指定された方法で(インターフェイスまたはクラスの)プロパティ/関数/アクション/メソッドの名前を取得するにはどうすればよいですか?

分類Dev

Q&A-厳密に型指定された方法で(インターフェイスまたはクラスの)プロパティ/関数/アクション/メソッドの名前を取得するにはどうすればよいですか?

分類Dev

基本クラスでジェネリックを使用しながら、あるインターフェイスから別のインターフェイスに関数を適用するにはどうすればよいですか?

分類Dev

インターフェイスを動的に実装するクラスからメソッドを取得するにはどうすればよいですか?

分類Dev

内部で他のインスタンスメソッドを使用する外部ライブラリのインスタンスメソッドにモンキーパッチを適用するにはどうすればよいですか?

分類Dev

インターフェイスインスタンスメソッドに同じクラスの引数のみを受け付けるようにするにはどうすればよいですか?

分類Dev

インターフェイスを実装するクラスにあるメソッドを、そのインターフェイスのタイプのオブジェクトで呼び出すにはどうすればよいですか?

分類Dev

typescriptのクラスからインスタンスメソッドを除外するタイプを作成するにはどうすればよいですか?

分類Dev

Iterable <interface>の戻り値の型メソッドをIterable <にオーバーライドするにはどうすればよいですか?インターフェイスを拡張>戻り値の型メソッド

分類Dev

特定のタイプのクラス/インターフェイスのクラスから依存関係を読み取り、その上でメソッドを実行するにはどうすればよいですか?

分類Dev

reactjsのインラインスタイルにベンダープレフィックスを適用するにはどうすればよいですか?

分類Dev

Typescriptインターフェイスの関数の戻り値の型voidを定義するにはどうすればよいですか?

分類Dev

関数にフェードイン効果を適用するにはどうすればよいですか?

分類Dev

サブクラスのスーパークラスメソッドにデコレータを適用するにはどうすればよいですか?

分類Dev

インターフェイスを拡張する型のパラメーターを受け入れる関数を使用して、Javaでインターフェイスを作成するにはどうすればよいですか?

分類Dev

インターフェイスに、インターフェイスの具体的な実装タイプを参照するメソッドをシグニチャーまたは戻り値の型に含めるにはどうすればよいですか?

分類Dev

インターフェイスメソッドを関数に渡すにはどうすればよいですか?

分類Dev

typescriptのswitchステートメントでインターフェイスをチェックするにはどうすればよいですか?

分類Dev

List <インターフェイスを実装するオブジェクト>をメソッドに渡すにはどうすればよいですか?

分類Dev

インターフェイスで静的メソッドを使用して、インスタンス メソッドによって返されるジェネリック インスタンスを返すにはどうすればよいですか?

分類Dev

サブクラスのメソッド(パラメーター)に、実装されたインターフェースで定義された注釈があるかどうかを確認するにはどうすればよいですか?

分類Dev

フィールドの関数型インターフェースの実装を作成するにはどうすればよいですか?

分類Dev

このTypeScriptインターフェイスの関数インスタンスを作成するにはどうすればよいですか?

分類Dev

インデックス依存関数をnumpyndarrayに適用するにはどうすればよいですか?

分類Dev

関数内で参照を作成する場合、ジェネリック型をライフタイムパラメーターを必要とするトレイトにバインドするにはどうすればよいですか?

分類Dev

入力または戻り値の型にインターフェイスの参照を持つメソッドでインターフェイスを使用するにはどうすればよいですか?

分類Dev

JUnitテストでメインファイルのメソッドを適用するにはどうすればよいですか?

分類Dev

インターフェイスのクラスを知っているだけでインターフェイスを実装するクラスのオブジェクトをメソッドに渡し、それをArrayListに追加するにはどうすればよいですか?

分類Dev

戻り値の型が外部インターフェイスであるネストされたインターフェイスメソッドを実装するにはどうすればよいですか?

Related 関連記事

  1. 1

    Q&A-厳密に型指定された方法で(インターフェイスまたはクラスの)プロパティ/関数/アクション/メソッドの名前を取得するにはどうすればよいですか?

  2. 2

    Q&A-厳密に型指定された方法で(インターフェイスまたはクラスの)プロパティ/関数/アクション/メソッドの名前を取得するにはどうすればよいですか?

  3. 3

    基本クラスでジェネリックを使用しながら、あるインターフェイスから別のインターフェイスに関数を適用するにはどうすればよいですか?

  4. 4

    インターフェイスを動的に実装するクラスからメソッドを取得するにはどうすればよいですか?

  5. 5

    内部で他のインスタンスメソッドを使用する外部ライブラリのインスタンスメソッドにモンキーパッチを適用するにはどうすればよいですか?

  6. 6

    インターフェイスインスタンスメソッドに同じクラスの引数のみを受け付けるようにするにはどうすればよいですか?

  7. 7

    インターフェイスを実装するクラスにあるメソッドを、そのインターフェイスのタイプのオブジェクトで呼び出すにはどうすればよいですか?

  8. 8

    typescriptのクラスからインスタンスメソッドを除外するタイプを作成するにはどうすればよいですか?

  9. 9

    Iterable <interface>の戻り値の型メソッドをIterable <にオーバーライドするにはどうすればよいですか?インターフェイスを拡張>戻り値の型メソッド

  10. 10

    特定のタイプのクラス/インターフェイスのクラスから依存関係を読み取り、その上でメソッドを実行するにはどうすればよいですか?

  11. 11

    reactjsのインラインスタイルにベンダープレフィックスを適用するにはどうすればよいですか?

  12. 12

    Typescriptインターフェイスの関数の戻り値の型voidを定義するにはどうすればよいですか?

  13. 13

    関数にフェードイン効果を適用するにはどうすればよいですか?

  14. 14

    サブクラスのスーパークラスメソッドにデコレータを適用するにはどうすればよいですか?

  15. 15

    インターフェイスを拡張する型のパラメーターを受け入れる関数を使用して、Javaでインターフェイスを作成するにはどうすればよいですか?

  16. 16

    インターフェイスに、インターフェイスの具体的な実装タイプを参照するメソッドをシグニチャーまたは戻り値の型に含めるにはどうすればよいですか?

  17. 17

    インターフェイスメソッドを関数に渡すにはどうすればよいですか?

  18. 18

    typescriptのswitchステートメントでインターフェイスをチェックするにはどうすればよいですか?

  19. 19

    List <インターフェイスを実装するオブジェクト>をメソッドに渡すにはどうすればよいですか?

  20. 20

    インターフェイスで静的メソッドを使用して、インスタンス メソッドによって返されるジェネリック インスタンスを返すにはどうすればよいですか?

  21. 21

    サブクラスのメソッド(パラメーター)に、実装されたインターフェースで定義された注釈があるかどうかを確認するにはどうすればよいですか?

  22. 22

    フィールドの関数型インターフェースの実装を作成するにはどうすればよいですか?

  23. 23

    このTypeScriptインターフェイスの関数インスタンスを作成するにはどうすればよいですか?

  24. 24

    インデックス依存関数をnumpyndarrayに適用するにはどうすればよいですか?

  25. 25

    関数内で参照を作成する場合、ジェネリック型をライフタイムパラメーターを必要とするトレイトにバインドするにはどうすればよいですか?

  26. 26

    入力または戻り値の型にインターフェイスの参照を持つメソッドでインターフェイスを使用するにはどうすればよいですか?

  27. 27

    JUnitテストでメインファイルのメソッドを適用するにはどうすればよいですか?

  28. 28

    インターフェイスのクラスを知っているだけでインターフェイスを実装するクラスのオブジェクトをメソッドに渡し、それをArrayListに追加するにはどうすればよいですか?

  29. 29

    戻り値の型が外部インターフェイスであるネストされたインターフェイスメソッドを実装するにはどうすればよいですか?

ホットタグ

アーカイブ