찾다

 >  Q&A  >  본문

TypeScript의 유형을 PropTypes에서 추론할 수 있나요?

<p>이 경우 유형을 추론하는 방법을 알고 있습니다. </p> <pre class="brush:php;toolbar:false;">'prop-types'에서 PropTypes 가져오기; const 소품 = { ID: PropTypes.번호, }; type Props = PropTypes.InferProps<typeof props> const x: 소품 = {}; x.id; // 숫자 | 정의되지 않음 <p>그러나 제 경우에는 다음과 같습니다. </p> <pre class="brush:php;toolbar:false;">const propsShape = PropTypes.shape({ ID: PropTypes.번호, // 중첩된 PropTypes.shape 호출을 포함한 추가 속성 });</pre> <p>내가 시도할 경우:</p> <pre class="brush:php;toolbar:false;">type PropsFromShape = PropTypes.InferProps<propsShape 유형> const y: PropsFromShape = {}; const z = y.id;</pre> <p>컴파일하지 못했습니다: </p> <pre class="brush:php;toolbar:false;">'{}' 유형은 'PropsFromShape' 유형에 할당할 수 없습니다. 'isRequired' 속성이 '{}' 유형에 없지만 'InferPropsInner<Pick<Requireable<InferProps<{ id: Requireable<number> }>>, "isRequired">>' 유형에 필요합니다. 'PropsFromShape' 유형에 'id' 속성이 없습니다.</pre> <p><code>shape</code> 매개변수를 별도의 상수로 추출하여 위와 같이 수행할 수 있지만, <code>propsShape</code>에서 속성 유형을 직접 추론할 수 있는 방법이 있습니까? 좋은 방법? </p>
P粉715304239P粉715304239472일 전468

모든 응답(1)나는 대답할 것이다

  • P粉872101673

    P粉8721016732023-08-15 09:53:53

    중첩된 객체의 유형을 얻으려면 type NestedProps = PropTypes.InferProps<typeof propsShape>['isRequired'];

    을 사용할 수 있습니다. 으아악

    또는 전체 props 정의를 한 곳에 넣을 수 있는 경우:

    으아악

    개인적으로는 후자가 더 읽기 쉽다고 생각합니다.

    회신하다
    0
  • 취소회신하다