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;
    }
}

Relaterade artiklar