reactjs - Typescript-Tipo-Genérico que estende e tem padrão
Atualmente estou trabalhando em algumas coisas de React e estava tentando fazer algo assim:
class TextBase<P = {} extends TextBaseProps> extends React.PureComponent<P>
Agora isso me dá um erro que é:
Parsing error: '?' expected. (eslint)
Eu mexi um pouco com isso e descobri que isso não me dá um erro:
<P extends TextBaseProps = {}>
Mas agora, quando estou tentando usar esse componente, ele me diz:
Property 'onPress' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<TextNormal> & Readonly<{}> & Readonly<{ children?: ReactNode; }>'
Ajuda é apreciada :)
EDITAR:
quase esqueci da interface:
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 Eu na verdade esqueci completamente uma informação importante. Estou estendendo novamente aquele elemento no qual a propriedade agora está ausente. A definição da classe:
class TextNormal extends TextBase {
public constructor(props: unknown) {
super(props, {
color: Colors.fg.hex(),
});
}
}