1. ホーム
  2. javascript

[解決済み] TypeScript インターフェースにおけるオプション関数

2022-06-06 11:04:27

質問

TypeScriptで、任意の関数を持つInterfaceを作ることはできますか?

interface IElement {
  name: string;
  options: any;
  type: string;
  value?: string;
  validation(any): boolean; // --> should be optional.

}

どのように解決するのですか?

TypeScriptでは現在、インターフェイスでの関数宣言に3つの構文が用意されています。

の例では validation 関数は 1 つのパラメータを取ります ( any 型)と boolean の戻り値です。

validation: {(flag: any): boolean};

または、より新しい構文で

validation(flag: any) : boolean;

または代替案として

validation: (flag: any) => boolean;

解答です。

のように、古い構文でオプションにするのは簡単です。

validation?: {(flag: any): boolean};

を 2 番目の構文で使うことができます (最近追加された構文です。 @toothbrush )

validation?(flag: any) : boolean;

または3番目の構文で(あなたが見つけたように)。

validation?: (flag: any) => boolean;