typescript - 如何使用接口声明一个带有命名参数的函数?
问题描述
使用 babel 时如何使用接口声明一个带有命名参数的函数?
Intellisense 没有显示任何错误,但是,一旦 Babel 编译它,我就会收到一个来自@babel/parser的错误
签名中的名称必须是标识符
declare namespace ServerPlugin {
interface MyFunction {
({ next, extendSchema, extendDatabase }: Params): void;
displayName?: string;
}
}
解决方案
事实证明,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;
}
}
推荐阅读
- .net-core - Apache Pulsar:使用 DotPulsar 的应用程序
- kubernetes - 带有 go-templates helm3 的 trable
- python - 如何在一个类中正确设置多个依赖属性?
- python-3.x - 将标准输出重定向到文件在某个时候停止
- c++ - UE4 如何使用 UMG ListView 显示结构列表?
- azure-active-directory - 不支持带过滤器的结束
- android - 为 Xamarin 项目设置 Firebase
- java - LOAD DATA INFILE LINES TERMINATD 不适用于 \n
- html - 如何使跨度输入组文本在html中具有相同的大小?
- laravel - Laravel URL 在页面加载时更改(但页面没有)