Я опубликовал компонент React на npm (написанный на JS) и хотел бы предоставить для него файл типографских данных .d.ts.Однако я изо всех сил пытаюсь заставить типы работать.Вот (упрощенная) ситуация (в JS):
class Async extends React.Component { ... }
const Pending = (props) => <div>{props.children}</div>
Async.Pending = Pending
Ожидание - это функциональный компонент, который отображается как статический член класса Async.
Теперь у меня есть следующее определение типадля него (в typings / index.d.ts):
declare class Async<T> extends React.Component<Props<T>, State<T>> {}
declare namespace Async {
export function Pending<T>(props: { children?: Children<T> }): React.ReactNode
}
export default Async
Props<T>
и State<T>
- интерфейсы.Children<T>
является псевдонимом типа.
В этой настройке я постоянно нажимаю на эту ошибку: «Ошибка типа: класс элементов JSX не поддерживает атрибуты, поскольку у него нет свойства props».
Мне удалось заставить его работать следующим образом:
type AsyncInterface<T> = React.ComponentClass<Props<T>, State<T>>
declare const Async: AsyncInterface<any>
export default Async
Однако я не вижу способа определить Pending как статический член для этого.
Полный исходный кодздесь: https://github.com/ghengeveld/react-async