如何使用接口声明带有命名参数的函数?

时间:2018-11-22 09:43:40

标签: typescript babeljs

使用babel时如何通过接口声明带有命名参数的函数?

Intellisense不会发现任何错误,但是Babel编译后,我收到了一个from here in @babel/parser出现的错误

  

签名中的名称必须是一个标识符

mvn dependency:tree -Dverbose

1 个答案:

答案 0 :(得分:0)

事实证明,babel不希望我们对命名类型如此准确。

因此,无需描述每个命名参数,而是将所有包裹它们的未命名参数进行相同的工作。

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

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