Подтвердить что ты не робот

TypeScript Дополнительная функция в интерфейсе

Возможно ли создать интерфейс в TypeScript с дополнительной функцией?

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

}
4b9b3361

Ответ 1

В настоящее время существует три синтаксиса, которые TypeScript допускает объявления функций в интерфейсах:

Используя ваш пример функции validation, принимающей 1 параметр (из any type) и возвращаемое значение boolean:

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

или в новом синтаксисе:

validation(flag: any) : boolean;

или альтернатива:

validation: (flag: any) => boolean;

Решение:

поэтому сделать его необязательным со старым синтаксисом легко:

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

со вторым синтаксисом (последнее добавление - благодаря @toothbrush)

validation?(flag: any) : boolean;

или в третьем синтаксисе (как вы нашли):

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