-
[typescript error] Type '{ children: Element; }' has no properties in common with type 'IntrinsicAttributes'typescript 2021. 4. 12. 17:14반응형
Type '{ children: Element; }' has no properties in common with type 'IntrinsicAttributes'.ts(2559)
>>'{children:Element; }' 형식에는 'IntrinsicAttributes(고유특성)'.ts(2559) 유형과 공통되는 속성이 없습니다.
뭔말인지는 잘모르는데 대충 췰드런 자리에 뭐 넣었으니까 타입을 집어넣어라? 겟지 ?
하고 메인에 FC 를 넣어야 되나 VFC 를 넣어야 되나 어디서 본거 같애서 넣어봤다. 그런데 안되네 ??
생각해보니가 넣어도 Main 에 췰드런을 쓴게 아니라 Header 라는 컴포넌트에 넣어줘야되서 그렇게 Header FC 를 추가해 주니까 해결 되었다.
근데 FC 랑 VFC 는 뭐하는 거고 다른점이 뭘까?
type FC<P = {}> = FunctionComponent<P>
interface FunctionComponent<P = {}> {
(props: PropsWithChildren<P>, context?: any): ReactElement<any, any> | null;
propTypes?: WeakValidationMap<P>;
contextTypes?: ValidationMap<any>;
defaultProps?: Partial<P>;
displayName?: string;
}
type PropsWithChildren<P> = P & { children?: ReactNode };
type VFC<P = {}> = VoidFunctionComponent<P>
interface VoidFunctionComponent<P = {}> {
(props: P, context?: any): ReactElement<any, any> | null;
propTypes?: WeakValidationMap<P>;
contextTypes?: ValidationMap<any>;
defaultProps?: Partial<P>;
displayName?: string;
}
FC의경우 일단 다른점은 children 이 옵션널로 정해져 있다.
근데 컴포넌트마다 children 이 필수적인 경우에는 VFC 를 쓰고 children 을 명시를 해서 타입을 정해주는 식이다.(그냥 FC 로해도 오류는 안난다.) 다만 타입체크가 안될뿐?
'typescript' 카테고리의 다른 글
[타입스크립트] interface 와 type 의 차이 (1) 2021.06.01 [typescript] 메모장 (0) 2021.04.23 [typescript & emotion] react 에서 emotion 사용해보기 (0) 2021.04.19 [typescript]연습장 (0) 2021.04.09 타입스크립트 제네릭 (0) 2021.04.01