javascript - Typescript sterkt typer void-funksjon


Jeg prøver å skrive et grensesnitt som tar en funksjon som en parameter:

Akkurat nå prøver jeg dette

export interface EditOptions {
     isEditing: boolean;
     save: () => {};
}

Jeg har prøvd noen ting for å tilordne funksjonen:

editOptions: EditOptions = { isEditing: false, save: this.save };
editOptions: EditOptions = { isEditing: false, save: () => { this.save() } };

Ingen fungerer, i stedet får jeg denne feilen:

Jeg vet at jeg foreløpig kan bruke :any, men hva er den riktige måten å sterkt typisere en void-funksjon på

Svar #1

Skjult for dokumentene finnes VoidFunction:

interface Example {
 save: VoidFunction;
}

const example: Example = {save: () => { this.saveForReal(); } };

Svar #2

grensesnittet du kan definere som :

export interface EditOptions {
 isEditing: boolean;
 save: () => void;
 }

og du kan bruke/tilordne det som :

editOptions: EditOptions = { isEditing: false, save: () => { this.anyFunction() } };

Relaterte artikler