HiveBrain v1.2.0
Get Started
← Back to all entries
patternjavascriptCritical

TypeScript Optional function in Interface

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
functiontypescriptoptionalinterface

Problem

Is it possible to create an Interface in TypeScript with optional function?

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

}

Solution

There are currently three syntaxes that TypeScript allows for function declarations in interfaces:

Using your example of a validation function taking 1 parameter (of any type) and a boolean return value:

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


or in the newer syntax:

validation(flag: any) : boolean;


or an alternative is:

validation: (flag: any) => boolean;


Solution:

so to make it optional with the old syntax is easy:

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


with the second syntax (recent addition - thanks to @toothbrush)

validation?(flag: any) : boolean;


or in the third syntax (as you found):

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

Code Snippets

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

Context

Stack Overflow Q#27522973, score: 327

Revisions (0)

No revisions yet.