Object Properties 하고 싶어요.

6159 단어 TypeScripttypeTStech
이 기사에는 흑마술에 치우친 코드가 포함되어 있다.
직접 사용하세요.

TL;DR


강제출연의 강제코드는 다음과 같다.
더 좋은 방법과 쓰기 방법이 있다면 꼭 메모를 남겨주세요.
export function pickInstance<K>(instance: K, ...pickProperties: (keyof K)[]): Pick<K, typeof pickProperties[number]> {
  return <Pick<K, typeof pickProperties[number]>>pickProperties.reduce<Partial<K>>((i, p) => {
    i[p] = instance[p]
    return i
  }, {})
}

export function ommitInstance<K>(instance: K, ...omitProperties: (keyof K)[]): Omit<K, typeof omitProperties[number]> {
  return <Omit<K, typeof omitProperties[number]>>omitProperties.reduce<Partial<K>>((i, p) => {
    delete i[p]
    return i
  }, Object.assign({}, instance))
}

왜 흑마술을 해요?


'어떤 반의 일부 속성을 제외한 나머지 속성'을 사용하고 싶습니다.매번 속성이 증가할 때마다 코드를 다시 쓰는 것은 매우 번거롭다.타입 스크립트의 유틸리티 타입처럼 쓰면 편할 것 같아요.후회 안 했어.
(직업: 자칭 시스템 엔지니어 30대 남성)

좋은 웹페이지 즐겨찾기