Loopback post 请求无法过滤和数组
Loopback post request cannot filter and array
我有一条 POST
道路 array
为 Queue
。我想在我的数据源中创建它们之前过滤它们。
我试过这样做:
async createarraywithcheck(
@requestBody(/*...*/)
queues: [Omit<Queue, 'id'>],
): Promise<Queue[]> {
queues = queues.filter(queue => queue.title.length < 10); //error here
return this.queueRepository.createAll(queues);
}
但是我得到这个错误:
Type 'Pick<Queue, "getId" | "getIdObject" | "toJSON" | "toObject" | "title">[]'
is not assignable to type
'[Pick<Queue, "getId" | "getIdObject" | "toJSON" | "toObject" |"title">]'.
Target requires 1 element(s) but source may have fewer.ts(2322)
我不明白其中的区别,对我来说它们都是 Pick<Queue, ....>
.
的数组
我该如何解决?
如前所述,问题出在您的 queues
参数类型上。
您设置的类型为[Omit<Queue, 'id'>]
,即a tuple。不是任何元组,而是只有一个参数的元组。
在javascript中,元组基本上就是一个数组。如果你过滤这个数组,如果 none 项通过条件会怎样?好吧,你 return 一个空数组。
由于您是 re-assigning 到 queues
,您可能正在执行以下操作:
queues = [] // here you have the error
解决方案是以下之一:
const filteredQueues: Omit<Queue, 'id'>[] = queues.filter(queue => queue.title.length < 10)
queues: Omit<Queue, 'id'>[]
我有一条 POST
道路 array
为 Queue
。我想在我的数据源中创建它们之前过滤它们。
我试过这样做:
async createarraywithcheck(
@requestBody(/*...*/)
queues: [Omit<Queue, 'id'>],
): Promise<Queue[]> {
queues = queues.filter(queue => queue.title.length < 10); //error here
return this.queueRepository.createAll(queues);
}
但是我得到这个错误:
Type 'Pick<Queue, "getId" | "getIdObject" | "toJSON" | "toObject" | "title">[]'
is not assignable to type
'[Pick<Queue, "getId" | "getIdObject" | "toJSON" | "toObject" |"title">]'.
Target requires 1 element(s) but source may have fewer.ts(2322)
我不明白其中的区别,对我来说它们都是 Pick<Queue, ....>
.
我该如何解决?
如前所述,问题出在您的 queues
参数类型上。
您设置的类型为[Omit<Queue, 'id'>]
,即a tuple。不是任何元组,而是只有一个参数的元组。
在javascript中,元组基本上就是一个数组。如果你过滤这个数组,如果 none 项通过条件会怎样?好吧,你 return 一个空数组。
由于您是 re-assigning 到 queues
,您可能正在执行以下操作:
queues = [] // here you have the error
解决方案是以下之一:
const filteredQueues: Omit<Queue, 'id'>[] = queues.filter(queue => queue.title.length < 10)
queues: Omit<Queue, 'id'>[]