Typescript 제네릭을 사용하여 객체에서 키를 필터링 할 수 있습니까?

Jon Lauridsen

작동 논리가있는 필터 함수가 있지만 유형을 작성하는 방법을 모르겠습니다.

export function filter<T>(object: T, ...keys: Array<keyof T>): ??? {
  let index = -1;
  const length = keys.length;
  const result = { ...object };

  while (++index < length) {
    const key = keys[index];
    if (key in object) delete result[key];
  }
  return result;
}

filter({ a: 1, b: 2 }, 'b')  // { a: 1 }

Typescript는 여전히 'b'속성이 존재한다고 생각하므로 .NET keys에서 제거 되도록 지정하는 방법을 찾고 있습니다 T.

나는 익숙 Omit하지만 (일반적으로 Typescript를 처음 접하는) 이것에 역할을 할 수 있다고 생각하지만 그것을 만들고 Array만날 방법을 찾지 못했습니다 ...

누군가 내가 찾고있는 길을 봅니까?

(btw의 특정 서명은 filter중요하지 않습니다. 유형 안전성에 더 도움이되는 대체 구현이 있다면 기쁩니다.)

Rengers

해결책은 keyof T제네릭 으로 추출 하는 것입니다. 이것은 작동합니다.

export function filter<T, K extends keyof T>(object: T, ...keys: Array<K>): Omit<T, K> {
  let index = -1;
  const length = keys.length;
  const result = { ...object };

  while (++index < length) {
    const key = keys[index];
    if (key in object) delete result[key];
  }
  return result;
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

typescript의 객체에서 제네릭을 사용할 수 있습니까?

분류에서Dev

dataweave를 사용하여 동적 키가있는 객체 배열을 필터링 할 수 없습니다.

분류에서Dev

typescript를 사용하여 관찰 가능한 객체 목록에서 필터를 사용할 수 없습니다.

분류에서Dev

이 예제에서 제네릭 유형을 사용하여 동일한 인터페이스에서 상속 된 여러 객체를 단일 변수에 어떻게 저장할 수 있습니까?

분류에서Dev

typescript에서 키 목록을 사용하여 객체에서 정의되지 않은 유형과 null 유형을 제거 할 수 있습니까?

분류에서Dev

Crossfilter를 사용하여 그룹 내에서 필터링 할 수 있습니까?

분류에서Dev

Tkinter를 사용하여 Python에서 필터링 된 DataFrame을 GUI에 어떻게 표시 할 수 있습니까?

분류에서Dev

ng-repeat에서 필터를 사용하여 특정 필드에 대해 여러 항목을 필터링 할 수 있습니까?

분류에서Dev

내 로컬 보조 인덱스의 정렬 키에서 ComparisonOperator.IN을 사용하여 DynamoDB의 쿼리 결과를 필터링 할 수 있습니까?

분류에서Dev

제네릭을 사용하여 생성자를 호출 할 수 있습니까?

분류에서Dev

하위 문자열을 사용하여 자바 스크립트에서 객체 배열을 필터링 할 수 있습니까?

분류에서Dev

필터 필드의 queryset 값을 사용하여 django에서 모델의 인스턴스를 어떻게 필터링 할 수 있습니까?

분류에서Dev

제네릭 유형을 제한하면서 제네릭 클래스를 확장 할 수 있습니까?

분류에서Dev

Typescript에서 오류가 아닌 객체를 허용하는 유형을 생성 할 수 있습니까?

분류에서Dev

조건부 제네릭을 사용하여 typescript에서 콜백 반환 유형을 설정할 수 있습니까?

분류에서Dev

TypesScript에서 제네릭 유형을 객체 인덱스 유형으로 사용할 수 있습니까?

분류에서Dev

nftables를 사용하여 MAC으로 패킷을 필터링 / 삭제할 수 있습니까?

분류에서Dev

Typescript에서 호출하지 않고 함수의 제네릭 유형을 설정할 수 있습니까?

분류에서Dev

표준 이름을 사용하여 컴퓨터를 필터링 할 수 있습니까?

분류에서Dev

mongodb를 사용하여 $ project에 객체 값을 푸시 할 수 있습니까?

분류에서Dev

하나의 동등 객체 필드를 사용하여 객체 배열에 포함을 사용할 수 있습니까?

분류에서Dev

Lambda-Expressions를 사용하여 KeyValue 객체에서 키로 필터링을 수행하는 방법은 무엇입니까?

분류에서Dev

Excel에서 사용 된 수식을 필터링 할 수 있습니까?

분류에서Dev

Java 정규식을 사용하여 HTML 파일 콘텐츠를 어떻게 필터링 할 수 있습니까?

분류에서Dev

각도 js에서 사용자 정의 필터를 사용하여 중첩 된 json 데이터를 필터링 할 수 있습니까?

분류에서Dev

baseadapter를 사용하여 listview를 어떻게 필터링 할 수 있습니까?

분류에서Dev

핫 초콜릿-제네릭을 사용하여 자체 개체 유형을 구현할 수 있습니까?

분류에서Dev

extendscript를 사용하여 외부 일러스트 레이터 파일에서 객체 속성을로드 할 수 있습니까?

분류에서Dev

객체 키 입력을 잃지 않고 제네릭을 Typescript 메서드에 도입 할 수 없음

Related 관련 기사

  1. 1

    typescript의 객체에서 제네릭을 사용할 수 있습니까?

  2. 2

    dataweave를 사용하여 동적 키가있는 객체 배열을 필터링 할 수 없습니다.

  3. 3

    typescript를 사용하여 관찰 가능한 객체 목록에서 필터를 사용할 수 없습니다.

  4. 4

    이 예제에서 제네릭 유형을 사용하여 동일한 인터페이스에서 상속 된 여러 객체를 단일 변수에 어떻게 저장할 수 있습니까?

  5. 5

    typescript에서 키 목록을 사용하여 객체에서 정의되지 않은 유형과 null 유형을 제거 할 수 있습니까?

  6. 6

    Crossfilter를 사용하여 그룹 내에서 필터링 할 수 있습니까?

  7. 7

    Tkinter를 사용하여 Python에서 필터링 된 DataFrame을 GUI에 어떻게 표시 할 수 있습니까?

  8. 8

    ng-repeat에서 필터를 사용하여 특정 필드에 대해 여러 항목을 필터링 할 수 있습니까?

  9. 9

    내 로컬 보조 인덱스의 정렬 키에서 ComparisonOperator.IN을 사용하여 DynamoDB의 쿼리 결과를 필터링 할 수 있습니까?

  10. 10

    제네릭을 사용하여 생성자를 호출 할 수 있습니까?

  11. 11

    하위 문자열을 사용하여 자바 스크립트에서 객체 배열을 필터링 할 수 있습니까?

  12. 12

    필터 필드의 queryset 값을 사용하여 django에서 모델의 인스턴스를 어떻게 필터링 할 수 있습니까?

  13. 13

    제네릭 유형을 제한하면서 제네릭 클래스를 확장 할 수 있습니까?

  14. 14

    Typescript에서 오류가 아닌 객체를 허용하는 유형을 생성 할 수 있습니까?

  15. 15

    조건부 제네릭을 사용하여 typescript에서 콜백 반환 유형을 설정할 수 있습니까?

  16. 16

    TypesScript에서 제네릭 유형을 객체 인덱스 유형으로 사용할 수 있습니까?

  17. 17

    nftables를 사용하여 MAC으로 패킷을 필터링 / 삭제할 수 있습니까?

  18. 18

    Typescript에서 호출하지 않고 함수의 제네릭 유형을 설정할 수 있습니까?

  19. 19

    표준 이름을 사용하여 컴퓨터를 필터링 할 수 있습니까?

  20. 20

    mongodb를 사용하여 $ project에 객체 값을 푸시 할 수 있습니까?

  21. 21

    하나의 동등 객체 필드를 사용하여 객체 배열에 포함을 사용할 수 있습니까?

  22. 22

    Lambda-Expressions를 사용하여 KeyValue 객체에서 키로 필터링을 수행하는 방법은 무엇입니까?

  23. 23

    Excel에서 사용 된 수식을 필터링 할 수 있습니까?

  24. 24

    Java 정규식을 사용하여 HTML 파일 콘텐츠를 어떻게 필터링 할 수 있습니까?

  25. 25

    각도 js에서 사용자 정의 필터를 사용하여 중첩 된 json 데이터를 필터링 할 수 있습니까?

  26. 26

    baseadapter를 사용하여 listview를 어떻게 필터링 할 수 있습니까?

  27. 27

    핫 초콜릿-제네릭을 사용하여 자체 개체 유형을 구현할 수 있습니까?

  28. 28

    extendscript를 사용하여 외부 일러스트 레이터 파일에서 객체 속성을로드 할 수 있습니까?

  29. 29

    객체 키 입력을 잃지 않고 제네릭을 Typescript 메서드에 도입 할 수 없음

뜨겁다태그

보관