public、private、protected修飾子
修飾子でクラスメンバーへのアクセスを制御します。
「public、private、protected修飾子」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全4レッスンが含まれています。
ようこそ
public:どこからでもアクセス可能
class Car {
public brand: string;
constructor(brand: string) { this.brand = brand; }
}
const c = new Car('Toyota');
console.log(c.brand); // OKprivate:クラス内からのみアクセス可能
class BankAccount {
private balance: number = 0;
deposit(n: number) { this.balance += n; }
}
const a = new BankAccount();
// a.balance; // Error!protected:クラスとサブクラスからアクセス可能
class Animal {
protected name: string;
constructor(name: string) { this.name = name; }
}
class Dog extends Animal {
bark() { console.log(this.name + ' says woof!'); } // OK
}コンパイル時のみの強制
#によるJavaScriptのプライベートフィールド
class Counter {
#count = 0; // runtime private (JavaScript)
increment() { this.#count++; }
get value() { return this.#count; }
}readonly修飾子
class User {
readonly id: number;
constructor(id: number) { this.id = id; }
}
const u = new User(1);
// u.id = 2; // Error!修飾子の組み合わせ
class Config {
constructor(
public readonly host: string,
private readonly port: number
) {}
}コンストラクターでのprivate
class Singleton {
private static instance: Singleton;
private constructor() {}
static getInstance(): Singleton {
return this.instance ??= new Singleton();
}
}protectedコンストラクター
class Base {
protected constructor(public id: number) {}
}
class Derived extends Base {
constructor(id: number) { super(id); }
}アクセス修飾子は実行時のオーバーヘッドを追加しない
確認問題
まとめ
よくある質問
「public、private、protected修飾子」レッスンは無料ですか?
はい。「public、private、protected修飾子」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全4レッスンが含まれています。
「public、private、protected修飾子」で何を学びますか?
修飾子でクラスメンバーへのアクセスを制御します。 ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
TypeScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「public、private、protected修飾子」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このTypeScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- TypeScriptのクラスとコンストラクター
- public、private、protected修飾子
- readonlyプロパティとパラメータープロパティ
- クラスによるInterfaceの実装