У меня очень простая установка TypeScript / React / TSX, но следующий фрагмент кода показывает ошибку:
import React from 'react';
import Layout from '../components/Layout';
export default function Index() {
return (
<Layout>
<div>Hello world</div>
</Layout>
);
}
Тег <Layout [...]>
подчеркнут красным, говоря: Property 'children' is missing in type '{}' but required in type 'LayoutProps'.ts(2741)
.
Действительно, для реквизита (LayoutProps
) компонента Layout
требуются дочерние элементы:
export interface LayoutProps {
children: React.ReactNode;
}
Однако, как вы видите в первом фрагменте, на самом деле есть дочерний элемент, a <div/>
. Я пытаюсь выяснить, почему он не "обнаружен" TypeScript.
Если я определю опору children
в качестве атрибута JSX, как в <Layout children={null} />
, ошибка исчезнет, как если бы я мог определять только детей, используя этот синтаксис.
Я использую TypeScript v3.7.4 с базовым c React / Next JS -дружественным tsconfig. json.