Hur kan jag definiera en returtyp av void för en funktion i ett Typescript-gränssnitt?
Jag har denna funktion:
network = (action): void =>{
if (action) {
this.action = action;
this.net = true;
this.netd = true;
} else {
this.action = null;
this.net = false;
this.netd = false;
}
}
Jag försökte definiera ett gränssnitt men det fungerar inte för mig:
interface IStateService {
network: (action: string): void;
}
Jag får ett meddelande som säger "oväntad token" på void
Svar #1
Du har två alternativ för syntax för en funktions-typad gränssnittsmedlem, som är ekvivalenta här:
interface IStateService {
network: (action: string) => void;
}
eller
interface IStateService {
network(action: string): void;
}
Svar #2
Det är nära den "typ literal"-syntaxen, men klamrarna krävs för det:
interface IStateService {
network: { (action: string): void; }
}
Detta är den fullständiga syntaxen och tillåter att definiera överlagringar, som detta:
interface IStateService {
network: {
(): string;
(action: string): void;
}
}
