Function pickTransform

从提供的对象中选择指定的字段,并可选择应用转换函数添加额外的字段。

待选择字段的对象。

要选择的键数组。

包含键转换函数的对象。键应与待选择的键数组对应。

返回一个新的对象,包含选定的键值对以及应用转换函数后的键值对。

const source: Person = {
name: 'Alice',
age: 18,
location: 'New York'
}

const result = pickTransform(source, ['name', 'location'], {
ageStr: (val) => `${val.age}岁`
})

console.log(result);
// Output: { name: 'Alice', location: 'New York', ageStr: '18岁' }
const source: Person|null = null

const result = pickTransform(source, ['name', 'location'], {
ageStr: (val) => `${val.age}岁`
})

console.log(result);
// Output: { }
  • Type Parameters

    • T extends Record<string, any>
    • K extends string | number | symbol
    • P extends Transform<T>

    Parameters

    • source: T
    • keys: K[]
    • transform: P & {
          [key in string | number | symbol]?: undefined
      }

    Returns {
        [key in K]: T[key]
    } & {
        [key in keyof P]: ReturnType<P[key]>
    }

  • Type Parameters

    • T extends Record<string, any>
    • K extends string | number | symbol
    • P extends Transform<T>

    Parameters

    • source: undefined | null | T
    • keys: K[]
    • transform: P & {
          [key in string | number | symbol]?: undefined
      }

    Returns Partial<{
        [key in K]: T[key]
    } & {
        [key in keyof P]: ReturnType<P[key]>
    }>