J'ai le code suivant
type SetupProps = {
defaults: string;
}
export class Setup extends React.Component<SetupProps, SetupState> {
constructor(props: any) {
super(props);
this.props.defaults = "Whatever";
}
En essayant d'exécuter ce code, le compilateur TS renvoie l'erreur suivante:
Impossible d'affecter aux 'valeurs par défaut' car il s'agit d'une constante ou d'une lecture seule propriété.
Comment deafualts
est-il une propriété en lecture seule, alors que ce n'est clairement pas indiqué de cette façon
Vous étendez React.Component
et définit props
comme Readonly<SetupProps>
class Component<P, S> {
constructor(props: P, context?: any);
...
props: Readonly<{ children?: ReactNode }> & Readonly<P>;
state: Readonly<S>;
...
}
Si vous souhaitez attribuer des valeurs par défaut, vous pouvez utiliser quelque chose comme:
constructor({ defaults = 'Whatever' }: Partial<SetupProps>) {
super({defaults});
}