0Pricing
TypeScript Academy · レッスン

TypeScriptのクラスとコンストラクター

型付きプロパティとコンストラクターを持つクラスを定義します。

「TypeScriptのクラスとコンストラクター」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全4レッスンが含まれています。

ようこそ

TypeScriptのクラスは、型注釈を備えたJavaScriptのクラスです。型付きのオブジェクト指向構造で、データと振る舞いを組み合わせます。

プロパティを含むクラス宣言

クラスの先頭で、型とともにクラスプロパティを宣言します。TypeScriptがすべての使用箇所をチェックします。
class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
}

パラメータプロパティの省略記法

コンストラクターのパラメーターにアクセス修飾子を付けると、クラスプロパティを自動的に作成して初期化できます。
class Person {
  constructor(
    public name: string,
    private age: number
  ) {} // properties created automatically
}

型付きメソッド

クラスメソッドでは、通常の関数と同じパラメーター型注釈と戻り値型注釈を使用します。
class Calculator {
  add(a: number, b: number): number {
    return a + b;
  }
}

ゲッターとセッター

getキーワードとsetキーワードを使用して、計算プロパティを作成します。TypeScriptがそれらの型をチェックします。
class Circle {
  constructor(private radius: number) {}
  get area(): number { return Math.PI * this.radius ** 2; }
  set r(v: number) { this.radius = v; }
}

型としてのクラス

クラスは値(コンストラクター関数)と型(インスタンスの形状)の両方を定義します。クラス名を型注釈として使用します。
class Dog { name = 'Rex'; bark() { return 'Woof'; } }
const d: Dog = new Dog();

静的メンバー

静的プロパティと静的メソッドはインスタンスではなく、クラス自体に属します。クラス名を通してアクセスします。
class MathHelper {
  static PI = 3.14159;
  static square(n: number): number { return n * n; }
}
console.log(MathHelper.PI);

クラスの継承

`extends`を使用して基底クラスを継承します。コンストラクターで`super()`を呼び出して親クラスを初期化します。
class Animal {
  constructor(public name: string) {}
  speak(): string { return '...'; }
}
class Dog extends Animal {
  speak(): string { return 'Woof!'; }
}

抽象クラス

抽象クラスはインスタンス化できません。サブクラスが実装すべき契約を定義します。
abstract class Shape {
  abstract area(): number;
  describe(): string { return `Area: ${this.area()}`; }
}
class Square extends Shape {
  constructor(private side: number) { super(); }
  area() { return this.side ** 2; }
}

クラスにおけるthis型

`this`型は現在のインスタンスの型を指し、正しい戻り値型を持つ流暢なAPIやビルダーAPIを実現します。
class Builder {
  private parts: string[] = [];
  add(p: string): this { this.parts.push(p); return this; }
  build(): string { return this.parts.join(','); }
}

クラスとインターフェースと型

クラスはコンストラクターを持つ実行時の値です。インターフェースと型エイリアスはコンパイル時にのみ存在する型の形状です。インスタンス化とメソッドが必要な場合はクラスを使用します。

確認問題

TypeScriptでコンストラクターのパラメーターに`public`を付けると、どのような効果がありますか。

まとめ

TypeScriptのクラスはJavaScriptのクラスに型を追加します。簡潔な宣言にはパラメータプロパティを、カプセル化にはアクセス修飾子を、サブクラスの契約の強制には抽象クラスを使用します。

よくある質問

「TypeScriptのクラスとコンストラクター」レッスンは無料ですか?

はい。「TypeScriptのクラスとコンストラクター」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全4レッスンが含まれています。

「TypeScriptのクラスとコンストラクター」で何を学びますか?

型付きプロパティとコンストラクターを持つクラスを定義します。 ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

TypeScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「TypeScriptのクラスとコンストラクター」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このTypeScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. TypeScriptのクラスとコンストラクター
  2. public、private、protected修飾子
  3. readonlyプロパティとパラメータープロパティ
  4. クラスによるInterfaceの実装
← TypeScript Academyに戻る