このようDeepReadonly
タイプを作成することが可能である:DeepReadonlyオブジェクト活字体
type DeepReadonly<T> = {
readonly [P in keyof T]: DeepReadonly<T[P]>;
};
interface A {
B: { C: number; };
D: { E: number; }[];
}
const myDeepReadonlyObject: DeepReadonly<A> = {
B: { C: 1 },
D: [ { E: 2 } ],
}
myDeepReadonlyObject.B = { C: 2 }; // error :)
myDeepReadonlyObject.B.C = 2; // error :)
これは素晴らしいです。 B
とB.C
の両方が読み取り専用です。私は...しかしD
を変更しようとすると
// I'd like this to be an error
myDeepReadonlyObject.D[0] = { E: 3 }; // no error :(
にはどうすれば
DeepReadonly
は、ネストされた配列が読み取り専用にもあるように書くべき?
'console.log(myDeepReadonlyObject.D [0]);'あなたはどのタイプのタイスクリプトを使用していますか? –
私はtsconfigに "noImplicitAny"フラグを設定しました。しかし、依然として疑問が残っています。私はそれをもっと明確に更新しました。ありがとう。おかげさまで –