Есть сложность в понимании типов в TypeScript. Имеется ввиду не простых типов "number, string, ...".
К примеру код из next.js:
class MyDocumnet extends Document {
static async getInitialProps(ctx: DocumentContext): Promise<DocumentInitialProps> {
const initialProps = await Document.getInitialProps(ctx);
return {...initialProps};
}
render(): JSX.Element {
return (
<Html lang="ru">
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
);
}
}
1) Как определить что функция getInitialProps возвращает Promise да еще DocumentInitialProps?
или вот еще пример
2) Как определить что функция render возвращает JSX.Element?
В JS есть возможность определить тип по typeof, как быть в Typescript? Я не понимаю фундаментальную основу, определения возвращаемого типа.
Очень хочу разобраться в этом вопросе, устал гадать, хочется понимания.