Проблема: интерфейс Stateless Functional Component
задан как
interface SFC<P = {}> {
(props: P & { children?: ReactNode }, context?: any): ReactElement<any> | null;
propTypes?: ValidationMap<P>;
}
Тип реквизита моего компонента также является общим:
interface Prop<V>{
num: V;
}
Как правильно определить мой компонент? как:
const myCom: <T>SFC<Prop<T>> = <T>(props: Prop<T>)=> <div>test</div>
выдает ошибку в character 27
которая Cannot find name 'T'
Вот: { (props: Readonly
context?: any): number; displayName?: string; defaultProps?: Partial
MyFindings:
1: Typescript 2.9.1 поддерживает общий компонент Stateful: http://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-9.html#generic-type-arguments-in-jsx-elements
class myCom<T> extends React.Component<Prop<T>, any> {
render() {
return <div>test</div>;
}
}
2: Расширение SFC
для создания нового интерфейса, как упомянуто в следующем ответе, сделало бы тип prop компонента как any
: Typescript Реагирует на функцию без сохранения состояния с общими типами параметров/возвращаемых значений, которые мне не нужны. Я хочу дать правильный тип для моей опоры