Я пытаюсь предоставить некоторые аргументы для конкретного объекта JSON, но продолжаю видеть эту ошибку:
Object literal may only specify known properties, and 'createdData' does not exist in type '{ bookId: string; createdBooks: []; }[]
Я не совсем понимаю структуру этого метода ниже, поэтому просто хотел спросить, как следует заполнять аргумент. Это [] выбрасывает меня в конец этого метода
export async function settleBooks(
createdData: { bookId: string; createdBooks: [] }[],
) {
for (const book of createdData) {
await settleBooksResulted(book.bookId, book.createdBooks);
}
}
Ниже показано, как я вызываю метод с включенным объектом:
const books = await settleBooks({
createdData: {
bookId: '8e3e7878-da38-43f4-a033-8cd9e37fa5c3',
createdBooks: [
{
booksCreated: [
{
bookId: '8e3e7878-da38-43f4-a033-8cd9e37fa5c3',
selectionId: 'd9767337-f9f6-4d05-83f4-48d5440eaa9b',
},
],
},
],
},
});
createdData
— это имя параметра в объявлении settleBooks
, оно не является свойством объекта.
Во-вторых, этот тип параметра является типом массива — обратите внимание на []
в самом конце { bookId: string; createdBooks: []; }[]
.
Итак, в литерале вашего объекта вам следует удалить эту обертку createdData
и вместо этого обернуть ее как массив:
const books = await settleBooks([{
bookId: '8e3e7878-da38-43f4-a033-8cd9e37fa5c3',
createdBooks: [{
booksCreated: [{
bookId: '8e3e7878-da38-43f4-a033-8cd9e37fa5c3',
selectionId: 'd9767337-f9f6-4d05-83f4-48d5440eaa9b',
}],
}],
}]);
Ах, ок, проблема теперь (и это то, что я видел до того, как добавил оболочку CreatedData) Object literal may only specify known properties, and 'bookId' does not exist in type '{ bookId: string; createdBooks: []; }[]
Ах да, я пропустил, что это тип массива. Я обновил свой ответ.
Ах, спасибо большое