이 경우 유형을 추론하는 방법을 알고 있습니다.
'prop-types'에서 PropTypes 가져오기; const 소품 = { ID: PropTypes.번호, }; type Props = PropTypes.InferPropsconst x: 소품 = {}; x.id; // 숫자 | 정의되지 않음 그러나 제 경우에는 다음과 같습니다.
const propsShape = PropTypes.shape({ ID: PropTypes.번호, // 중첩된 PropTypes.shape 호출을 포함한 추가 속성 });내가 시도할 경우:
type PropsFromShape = PropTypes.InferPropsconst y: PropsFromShape = {}; const z = y.id; 컴파일하지 못했습니다:
'{}' 유형은 'PropsFromShape' 유형에 할당할 수 없습니다. 'isRequired' 속성이 '{}' 유형에 없지만 'InferPropsInner}>>, "isRequired">>' 유형에 필요합니다. 'PropsFromShape' 유형에 'id' 속성이 없습니다.
shape
매개변수를 별도의 상수로 추출하여 위와 같이 수행할 수 있지만,propsShape
에서 속성 유형을 직접 추론할 수 있는 방법이 있습니까? 좋은 방법?
중첩된 객체의 유형을 얻으려면
을 사용할 수 있습니다. 으아악type NestedProps = PropTypes.InferProps['isRequired'];
또는 전체 props 정의를 한 곳에 넣을 수 있는 경우:
으아악개인적으로는 후자가 더 읽기 쉽다고 생각합니다.