如何为包含特定函数数组的 JSON 对象编写接口
Posted
技术标签:
【中文标题】如何为包含特定函数数组的 JSON 对象编写接口【英文标题】:How to write an interface for a JSON object that contains an array of specific functions 【发布时间】:2018-03-05 16:30:58 【问题描述】:我想为 JSON 对象创建一个接口。它有 n 个名称未知的键,每个值都是具有特定签名的函数数组。
// CLASSES
class Server
// Private variables
mapping : IMapping =
// Public functions
public use(endPoint = "", handler : IHandler) : void
// Check if the end point exists in the mapping
if(this.mapping[endPoint] === undefined)
this.mapping[endPoint] =
[endPoint] : [handler]
;
else
// INTERFACES
interface IMapping
[key : string] : IHandler[];
interface IHandler
(req : object, res : object, next : object) : void;
我的代码失败了:this.mapping[endPoint]
with
Type ' [x: string]: IHandler[]; ' is not assignable to type 'IHandler[]'.
Property 'length' is missing in type ' [x: string]: IHandler[]; '.
【问题讨论】:
【参考方案1】:应该是:
this.mapping[endPoint] = [handler];
【讨论】:
感谢您的回复!在这种情况下,我会像这样更正它: // 检查映射中是否存在端点。如果没有,则创建它 if(this.mapping[endPoint] === undefined) this.mapping[endPoint] = []; // 将端点与处理程序关联 this.mapping[endPoint].push(handler);以上是关于如何为包含特定函数数组的 JSON 对象编写接口的主要内容,如果未能解决你的问题,请参考以下文章
如何为包含数组数组的对象编写 Mongoose Schema?