Я хочу получить данные из базы данных и вернуть их, как определено в интерфейсе (т.е. только значения, соответствующие интерфейсу). я написал следующие коды
// get data from databae - db.find()
async getCustomerList(): Promise<CustomerInfoInterface[]> {
const customerList = await db.find();
return customerList;
}
А ТАКЖЕ
export interface CustomerInfoInterface {
firstName: string;
lastName: string;
phone: string;
address?: string;
birthDate?: Date;
data?: object;
}
Когда я вызвал функцию, я получаю
[
{
"customerId": "5d63b80ce186984f50617c95",
"phone": "+9475588752",
"firstName": "Jhon",
"lastName": "Doe",
"address": "No. 1, Some Rd, Somewhere",
"birthDate": "1990-01-01",
"data": {},
"secret1": "a-efw53.0",
"secret2": "b-45300"
},
{
...
]
Но я ожидаю получить ответ, точно соответствующий интерфейсу. (ошибка, если меньше или отфильтровать больше). В чем тут проблема и как это реализуется с помощью интерфейсов?
ps: я знаю, что могу сделать то же самое, вручную сопоставив каждое значение, но намерение здесь - использовать Interfaces
.
Я работаю над Loopback 4 на Ubuntu (TypeScript)