React.FC에서 props 유형 가져오기
8632 단어 ReactTypeScript
React.FC에서 props 유형 가져오기
정의React.FC<Props>
이후Props
가 아니라면
Conditional Types - Advanced Types - TypeScript를 사용하여 객체 함수의 매개변수 유형을 가져옵니다.
필요 없음
이 기사보다 아래 기사export
를 확인하는 것이 좋다.
Parameters - Utility Types - TypeScript
Parameterstype T1 = Parameters<(s: string) => void>; // [string]
인스턴스
ComponentProps-typeimport React from 'react'
type ComponentProps<T> = T extends (props: infer P) => ReturnType<React.FC> ? P : never
React.FC의 인스턴스에만 국한되지 않으려면
하지만React.ComponentProps
...할 때any
사용한다
ComponentProps-unknown-typetype ComponentProps<T> = T extends (props: infer P) => unknown ? P : never
설명
조건부 유형의 유형 추론-Type Script2.8 조건부 유형-Qiita 정보・・・
type FirstArgs<T> = T extends (a1: infer A1, ...rest: any[]) => any ? A1 : never;
・・・
여기 참고
type T1 = Parameters<(s: string) => void>; // [string]
import React from 'react'
type ComponentProps<T> = T extends (props: infer P) => ReturnType<React.FC> ? P : never
type ComponentProps<T> = T extends (props: infer P) => unknown ? P : never
・・・
type FirstArgs<T> = T extends (a1: infer A1, ...rest: any[]) => any ? A1 : never;
・・・
unknown
에서 Props
A1
을 P
의 반환값으로 변경견본
user.tsx
import React from 'react'
type Props = {
user: {
/** ユーザー ID */
id: number
/** ユーザー名 */
name: string
}
}
const Component: React.FC<Props> = props => (
<div>
{props.user.id} {props.user.name}
</div>
)
export default Component
user.story.tsximport React from 'react'
import { storiesOf } from '@storybook/react'
import User from './user'
type ComponentProps<T> = T extends (props: infer P) => ReturnType<React.FC> ? P : never
storiesOf('organisms/User', module).add('main', () => {
const user: ComponentProps<typeof User>['user'] = {
id: 1,
name: 'taro',
}
return (
<>
<User user={user} />
</>
)
})
Reference
이 문제에 관하여(React.FC에서 props 유형 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ysKuga/items/3408a821defdd90cfbe8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)