reactjs - Typescript-Tipo Genérico que se extiende y tiene valor predeterminado
Actualmente estoy trabajando en algunas cosas de React y estaba intentando hacer algo como esto:
class TextBase<P = {} extends TextBaseProps> extends React.PureComponent<P>
Ahora esto me da un error que es:
Parsing error: '?' expected. (eslint)
Jugueteé un poco con ello y descubrí que esto no me da un error:
<P extends TextBaseProps = {}>
Pero ahora, cuando intento usar ese componente, me dice:
Property 'onPress' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<TextNormal> & Readonly<{}> & Readonly<{ children?: ReactNode; }>'
Se aprecia la ayuda :)
EDITAR:
casi olvido la interfaz:
interface TextBaseProps {
children?: string | string[];
onPress?: (event: GestureResponderEvent) => void;
}
tsc --noEmit --skipLibCheck
error TS2322: Type '{ children: string[]; onPress: () => void; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<TextNormal> & Readonly<{}> & Readonly<{ children?: ReactNode; }>'.
Property 'onPress' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<TextNormal> & Readonly<{}> & Readonly<{ children?: ReactNode; }>'.
38 <STD.TextNormal
IMPORTANTE En realidad me olvidé completamente de un dato importante. Estoy ampliando nuevamente ese elemento en el que ahora falta la propiedad. La definición de la clase:
class TextNormal extends TextBase {
public constructor(props: unknown) {
super(props, {
color: Colors.fg.hex(),
});
}
}