Как определить возвращаемый тип void для функции в интерфейсе Typescript?

у меня есть эта функция:

   network = (action): void =>{
        if (action) {
            this.action = action;
            this.net = true;
            this.netd = true;
        } else {
            this.action = null;
            this.net = false;
            this.netd = false;
        }
    }

Я попытался определить интерфейс, но он не работает для меня:

interface IStateService {
    network: (action: string): void;
}

Я получаю сообщение с надписью "неожиданный токен" на void

2 ответов


у вас есть два варианта синтаксиса для функционального элемента интерфейса, которые эквивалентны здесь:

interface IStateService {
    network: (action: string) => void;
}

или

interface IStateService {
    network(action: string): void;
}

это близко к синтаксису "Type literal", но для этого требуются фигурные скобки:

interface IStateService {
    network: { (action: string): void; }
}

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

interface IStateService {
    network: {
        (): string;
        (action: string): void;
    }
}