Как заполнить этот аргумент, чтобы исправить ошибку: литерал объекта может указывать только известные свойства

Я пытаюсь предоставить некоторые аргументы для конкретного объекта 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',
          },
        ],
      },
    ],
  },
});

52
1

Ответ:

Решено

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',
        }],
    }],
}]);