기존 유형 정의를 재사용하는 적절한 방법

라밀 암 파로

일부 소품을 다른 반응 하위 구성 요소로 전달하는 반응 구성 요소를 사용할 때 일부 유형 정의를 하위 구성 요소에 이미 정의 된 부모에 다시 작성하는 것을 발견했습니다.

interface ParentProps {
    onChange: (value: string) => void; // I end up rewriting this, when it was already written on ChildProps interface.
}

const Parent: React.FC<ParentProps> = ({ onChange }) => {
    return <Child onChange={onChange} label="Label 1" />;
};

// Child component. Could be imported from a third party library.
interface ChildProps {
    onChange: (value: string) => void;
    label: string;
}
const Child: React.FC<ChildProps> = ({ onChange }) => {
    return <MyComponent onChange={onChange} />;
};

유형 정의 재 작성을 방지하는 기술이 있습니까?

티티 안 세르 니코 바-드라고 미르

얼마나 ChildProps재사용 하려는지에 따라 다릅니다.

몇 가지 속성 만 재사용하려면 인덱싱 된 유형 쿼리에서 사용하여 특정 속성의 유형을 가져올 수 있습니다.

interface ParentProps {
    onChange: ChildProps['onChange']
}

또는 모든 속성을 재사용하려는 경우 ParentProps확장하도록 정의 할 수 ChildProps있습니다.

interface ParentProps extends ChildProps {
}

또는 다음을 사용하여 하위 집합 만 선택할 수 있습니다 Pick.

interface ParentProps extends Pick<ChildProps, 'onChange'>  { // Pick<ChildProps, 'onChange' | 'label'> to pick more
}

또는 하위 집합을 제외한 모든 항목을 선택하려면 다음을 사용할 수 있습니다. Omit

interface ParentProps extends Omit<ChildProps, 'label'>  { // Omit<ChildProps, 'onChange' | 'label'> to omit more
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

C에서 구조체의 바이트 배열 유형 punning 크기를 조정하는 적절한 방법

사용자 정의보기를 그리는 적절한 방법?

패턴 일치 표현식을 정리하는 방법 (또는 기존 유형을 제한된 클래스 및 특정 유형으로 사용하는 방법)

Slim의 의존성 컨테이너를 사용하는 적절한 방법

일반 impl을 사용하기 위한 적절한 유형을 제공하는 방법은 무엇입니까?

기본 내보내기를 사용하여 모듈에 대한 유형 정의를 작성하는 방법

IUnityContainer의 생성자에서 추상 유형에 대한 ParameterOverride를 적절하게 정의하는 방법

일반 함수에서 적절한 유형의 함수를 사용하는 방법은 무엇입니까?

스칼라의 클래스에 숫자 유형 경계를 사용하는 적절한 방법

사용자 정의 유형과 기존 유형 사이에 이미 존재하는 (예 : Prelude에서) 연산자를 정의하는 올바른 방법은 무엇입니까?

재 작성 및 유효한 MIME 유형으로 NGINX를 구성하는 적절한 방법

TableViewCell의 SegmentedControl-셀을 재사용하는 적절한 방법

Java의 MIME 유형에서 적절한 파일 확장자를 결정하는 방법

Java에서 여러 유형의 정렬되지 않은 XML 객체를 처리하는 적절한 방법

OpenLayers를 사용하여 기존 다각형 내부의 그리기를 제한하는 방법

querySelectorAll을 사용하여 양식의 유효성을 검사하는 경우-오류를 출력하기 위해 적절한 범위를 선택하는 방법

TypeScript 제네릭 함수를 사용하여 전달 된 유형에 존재하는 속성을 적용하는 방법은 무엇입니까?

사용자 정의 테마에 대한 LMS 정적 JS보기를 재정의하는 방법

다양한 유형의 적합 분류기 (SVM, 의사 결정 트리, 신경망 등)에서 AdaBoost를 사용하는 방법은 무엇입니까?

PHP Ajax 유형의 콜백을 수행하는 적절한 방법

plt.ylabel = ''를 적절한 기능으로 재설정하는 방법

CNN의 입력 크기를 조정하는 적절한 방법 (예 : VGG)

PHP를 사용하여 적절한 배열 형식을 만드는 방법

제네릭 형식 제약 조건을 사용하여 Add 메서드 존재를 적용하는 방법

CsvHelper를 사용하여 비동기를 작성하는 적절한 방법

반응 후크에서이 파일 유형을 처리하기 위해 적절한 로더 오류를 수정하는 방법

한 줄에 특정 유형의 여러 변수를 초기화하는 방법

기본 유형 배열의 메모리를 다른 (아직 기본이긴하지만) 유형 배열에 재사용하는 것이 합법적입니까?

Swift에서 사용자 정의 유형과 기존 유형간에 유형 캐스팅을 허용하는 방법

TOP 리스트

  1. 1

    Ionic 2 로더가 적시에 표시되지 않음

  2. 2

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  3. 3

    std :: regex의 일관성없는 동작

  4. 4

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  5. 5

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  6. 6

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  7. 7

    상황에 맞는 메뉴 색상

  8. 8

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  11. 11

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  12. 12

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  13. 13

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    복사 / 붙여 넣기 비활성화

  16. 16

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  17. 17

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  18. 18

    SQL Server-현명한 데이터 문제 받기

  19. 19

    Seaborn에서 축 제목 숨기기

  20. 20

    ArrayBufferLike의 typescript 정의의 깊은 의미

  21. 21

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

뜨겁다태그

보관