hur man definierar en typ under forEach i TypeScript?
Jag har en array med PersonTypes-objekt och vill endast använda delar av nyckeln inom en forEach-loop. Vad är den mest precisa, korrekta kodningen i TypeScript för att ange en typ? Jag kan göra något som people.forEach((person: Pick<PersonTypes, 'name' | 'gender'> eller people.forEach((person: PersonTypes) =>{ eller people.forEach((person: any) =>{. Vilket är rätt sätt att koda i TypeScript
export type PersonTypes = {
name: string;
value: string;
gender: boolean;
};
const people: PersonTypes[] = [
{name: 'apl', value: 'apple', gender: true},
{name: 'gal', value: 'google', gender: false},
]
people.forEach((person: Pick<PersonTypes, 'name' | 'gender'>) =>{
//people.forEach((person: PersonTypes) =>{
//people.forEach((person: any) =>{
console.log(person.name);
console.log(person.gender);
} )
Svar #1
Du borde bara hålla dig till:
people.forEach((person: PersonTypes) =>{
});
Detta beror på att varje objekt inom people-arrayen är av typen PersonTypes, och det finns inget faktiskt behov av att extrahera egenskaper från typen.
Faktum är att det inte finns något behov av att uttryckligen skriva person som PersonTypes, eftersom people är av PersonTypes[]. TypeScript kommer automatiskt att härleda att varje objekt i arrayen är PersonTypes, så detta skulle vara tillräckligt:
people.forEach((person) =>{
});
Alternativt kan du välja att destrukturera parametern, vilket kommer göra din funktion mer kortfattad och ren.
people.forEach(({ name, gender }) =>{
console.log(name);
console.log(gender);
});
