私は次のコードを持っています
type SetupProps = {
defaults: string;
}
export class Setup extends React.Component<SetupProps, SetupState> {
constructor(props: any) {
super(props);
this.props.defaults = "Whatever";
}
このコードを実行しようとすると、TSコンパイラは次のエラーを返します。
定数または読み取り専用プロパティであるため、「デフォルト」に割り当てることができません。
deafualts
が読み取り専用プロパティであるのは、明らかにこのようにマークされていない場合です。
React.Component
を拡張し、props
をReadonly<SetupProps>
として定義しています
class Component<P, S> {
constructor(props: P, context?: any);
...
props: Readonly<{ children?: ReactNode }> & Readonly<P>;
state: Readonly<S>;
...
}
いくつかのデフォルト値を割り当てたい場合は、次のようなものを使用できます。
constructor({ defaults = 'Whatever' }: Partial<SetupProps>) {
super({defaults});
}