레코드를 배열에 매핑해야 했던 적이 있습니까?
4756 단어 typescript
function mapRecordToArray<T, R extends Omit<T, K>, K extends keyof T>(record: Record<string, R>, recordKeyName: K) {
return Object.keys(record).map(key => ({ ...record[key as keyof typeof record], [recordKeyName]: key })) as T[]
}
사용법:
type Field = {
name: string,
label: string,
}
type Collection = {
name: string,
label: string,
fields: Record<string, Omit<Field, 'name'>> | Field[]
}
const collections:Collections[] = [] // ...
collections.forEach(collection => {
const fields = Array.isArray(collection.fields)
? collection.fields
: mapRecordToArray(collection.fields, 'name')
})
// Function typings will look like this:
// function mapRecordToArray<Field, Omit<Field, "name">, "name">(record: Record<string, Omit<Field, "name">>, recordKeyName: "name"): Field[]
// Notice the return type: Field[]
그것이 다른 사람들을 도울 수 있기를 바랍니다! 다소 구체적일 수 있음을 인정하지만 😜
Reference
이 문제에 관하여(레코드를 배열에 매핑해야 했던 적이 있습니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/brense/ever-needed-to-map-a-record-to-an-array-ml1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)