reactjs - Objekt är av typen 'unknown' inom .map?


Jag har en lista med ämnen

const topics = getPromptCategories();

som ser ut som

[ { category: "cat1", attempts: 0 }, {category: "cat2", attempts: 0 } ]

Så mitt gränssnitt är

interface topicInterface {
    category: string;
    attempts: number;
}

och jag försöker härleda ett antal knappar från ämnena, så jag gör det här

const topicButtons = topics.map((topic) => {
    return <button>{topic.category}</button>;
});

men det skriker åt mig om Object is of type 'unknown' vid {topic.category}

Om jag lägger till gränssnittet till ämne topic: topicInterface säger det nu något annat

Argument of type '(topic: topicInterface) => JSX.Element' is not assignable to parameter of type '(value: unknown, index: number, array: unknown[]) => Element'.

Jag är ny på TypeScript. Vad missar jag eller förbiser?

Svar #1

Om det hjälper någon annan, pekade @crashmstr mig i rätt riktning.

Problemet var med min getPromptCategories()-funktion eftersom den inte returnerade topicInterface[].

Jag gick in i min funktion och justerade min kod för att återspegla detta

let out: topicInterface[] = Object.values(...);
return out;

Och mina topicButtons ser ut som

const topicButtons = topics.map((topic:topicInterface) => {
    return <button key={topic.category}>{topic.category}</button>;
});

Relaterade artiklar