Почему TypeScript не определяет тип возврата этой фабрики JSX? - PullRequest
0 голосов
/ 31 декабря 2018

JSX factory:

function h(type: string, _props, ..._children): HTMLElement {
    return document.createElement(type); // breakpoint here is hit
}

tsconfig.json:

"jsx": "react",
"jsxFactory": "h"

Использование в файле .tsx:

const element = <div></div>; // = any

Кажется, что TypeScript не выводиттип возврата (HTMLElement) с фабрики JSX.Здесь переменная element имеет тип any, что нежелательно.

Я проверял это как в Visual Studio 2017, так и в коде VS.

A tooltip in Visual Studio 2017 says

Мне интересно, можно ли заставить TypeScript выводить тип возврата фабрики JSX.Если это невозможно, это ограничение TypeScript и почему?

1 Ответ

0 голосов
/ 01 января 2019

В справочнике по TypeScript указано следующее:

Тип результата JSX

По умолчанию результат выражения JSX набирается как любой.Вы можете настроить тип, указав интерфейс JSX.Element.Однако из этого интерфейса невозможно получить информацию о типе элемента, атрибутов или дочерних элементов JSX.Это черный ящик.

https://www.typescriptlang.org/docs/handbook/jsx.html#the-jsx-result-type

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...