クラスのreadonly修飾子
TypeScriptでは、フィールドにreadonly修飾子をつけると、そのフィールドを読み取り専用にできます。
読み取り専用フィールドは、コンストラクタかフィールド初期化子でのみ値を代入できます。
tsclassOctopus {readonlyname : string;readonlylegs = 8; // フィールド初期化子での代入はOKconstructor() {this.name = "たこちゃん"; // コンストラクターでの代入はOK}}
tsclassOctopus {readonlyname : string;readonlylegs = 8; // フィールド初期化子での代入はOKconstructor() {this.name = "たこちゃん"; // コンストラクターでの代入はOK}}
読み取り専用フィールドは、再代入しようとするとコンパイルエラーになります。
tsconstoctopus = newOctopus ();Cannot assign to 'legs' because it is a read-only property.2540Cannot assign to 'legs' because it is a read-only property.octopus .= 16; legs
tsconstoctopus = newOctopus ();Cannot assign to 'legs' because it is a read-only property.2540Cannot assign to 'legs' because it is a read-only property.octopus .= 16; legs
メソッド内の処理であっても、読み取り専用フィールドへの再代入は許されません。
tsclassOctopus {readonlyname = "たこちゃん";setName (newName : string): void {this.Cannot assign to 'name' because it is a read-only property.2540Cannot assign to 'name' because it is a read-only property.= name newName ;}}
tsclassOctopus {readonlyname = "たこちゃん";setName (newName : string): void {this.Cannot assign to 'name' because it is a read-only property.2540Cannot assign to 'name' because it is a read-only property.= name newName ;}}