Используя новую особенность условного универсального типа TypeScript 2.8, возможно ли извлечь TProps
компонента React.ComponentType<TProps>
? Мне нужен тип, который может или работать на ComponentType
или на TProps
, так что вы, как разработчик, можете передать оба варианта:
Например:
interface TestProps {
foo: string;
}
const TestComponent extends React.Component<TestProps, {}> {
render() { return null; }
}
// now I need to create a type using conditional types so that
// I can pass either the component or the props and always get the
// TProps type back
type ExtractProps<TComponentOrTProps> = /* ?? how to do it? */
type a = ExtractProps<TestComponent> // type a should be TestProps
type b = ExtractProps<TestProps> // type b should also be TestProps
Возможно ли это, и кто-нибудь может предложить решение?