Как объявить функцию, принимающую именованные аргументы с интерфейсом? - PullRequest
0 голосов
/ 22 ноября 2018

Как объявить функцию, принимающую именованные аргументы, с интерфейсом при использовании babel?

Однако Intellisense не выявляет никаких ошибок, но как только Babel компилирует ее, я получаю сообщение об ошибке отсюдаin @ babel / parser

Имя в подписи должно быть идентификатором

declare namespace ServerPlugin {
    interface MyFunction {
        ({ next, extendSchema, extendDatabase }: Params): void;
        displayName?: string;
    }
}

1 Ответ

0 голосов
/ 22 ноября 2018

Оказывается, вавилон не хочет, чтобы мы были настолько точны в отношении именованных типов.

Таким образом, вместо описания каждого из названных аргументов, один безымянный аргумент, который их объединяет, выполняет ту же работу.

declare namespace ServerPlugin {
    interface MyFunction {
        (args: Params): void;
        displayName?: string;
    }

    interface Params {
        req: Express.Request;
        res: Express.Response;
        next: NextFunction;
        extendDatabase: ExtendDatabase;
        extendSchema: ExtendSchema;
    }
}
...