カテゴリ: TypeScript 更新日: 2025/12/22

TypeScriptでプロパティ・メソッドを定義する方法を徹底解説!初心者向けオブジェクト指向入門

TypeScriptでプロパティ・メソッドを定義する方法
TypeScriptでプロパティ・メソッドを定義する方法

先生と生徒の会話形式で理解しよう

生徒

「先生、TypeScriptでクラスを作るときに、プロパティとかメソッドってよく出てきますけど、どうやって定義するんですか?」

先生

「良いところに気がつきましたね。クラスの中に変数のように持たせるものをプロパティ、動作や処理をまとめたものをメソッドと呼びます。TypeScriptではとても簡単に書けるんですよ。」

生徒

「なるほど!でもプログラミング初心者だと、ちょっとイメージがつきにくいです…。具体的に教えてください!」

先生

「それでは、プロパティとメソッドの基本的な使い方を一緒に見ていきましょう!」

1. プロパティとは?

1. プロパティとは?
1. プロパティとは?

TypeScriptにおけるプロパティとは、クラスが持つ「情報」や「状態」を保存するための変数のことです。たとえば、人を表すクラスなら「名前」や「年齢」などがプロパティにあたります。プロパティはクラスの内部に定義して、オブジェクトごとに値を持たせることができます。

例えるなら、クラスは「設計図」で、プロパティはその設計図に書かれている部品や属性のようなものです。


class Person {
    name: string;
    age: number;

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

const student = new Person("太郎", 20);
console.log(student.name);
console.log(student.age);

太郎
20

このように、nameageがプロパティです。this.namethis.ageのように書くことで、クラスの中で自分自身の情報を扱えるようになります。

2. メソッドとは?

2. メソッドとは?
2. メソッドとは?

次にメソッドについて解説します。メソッドとは、クラスに所属する「処理」や「動作」を表す関数のことです。プロパティが「情報」を持つのに対して、メソッドは「行動」を表します。

たとえば、人クラスに「自己紹介をする」という機能を持たせたいとき、メソッドを使います。


class Person {
    name: string;
    age: number;

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

    introduce(): void {
        console.log(`私の名前は${this.name}です。年齢は${this.age}歳です。`);
    }
}

const student = new Person("花子", 22);
student.introduce();

私の名前は花子です。年齢は22歳です。

この例ではintroduceがメソッドです。呼び出すと、プロパティの値を利用して自己紹介をしてくれます。

3. プロパティとメソッドを組み合わせる

3. プロパティとメソッドを組み合わせる
3. プロパティとメソッドを組み合わせる

プロパティとメソッドは組み合わせることで、クラスの機能をより豊かに表現できます。例えば、動物クラスを作り、「名前」というプロパティと「鳴く」というメソッドを定義してみましょう。


class Animal {
    name: string;

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

    speak(): void {
        console.log(`${this.name}が鳴きました!`);
    }
}

const dog = new Animal("ポチ");
dog.speak();

ポチが鳴きました!

このように、プロパティnameで動物の名前を持ち、メソッドspeakで動作を定義しています。クラスは「情報」と「行動」をひとまとめにできる仕組みです。

4. アクセス修飾子でプロパティやメソッドを管理

4. アクセス修飾子でプロパティやメソッドを管理
4. アクセス修飾子でプロパティやメソッドを管理

TypeScriptでは、プロパティやメソッドにアクセス修飾子を付けて、外部からアクセスできる範囲をコントロールできます。代表的なものは以下の3つです。

  • public(デフォルト):どこからでもアクセス可能
  • private:クラスの内部からしかアクセスできない
  • protected:クラス自身と継承したクラスからのみアクセスできる

class BankAccount {
    public owner: string;
    private balance: number;

    constructor(owner: string, balance: number) {
        this.owner = owner;
        this.balance = balance;
    }

    deposit(amount: number): void {
        this.balance += amount;
        console.log(`${amount}円を入金しました。`);
    }

    getBalance(): number {
        return this.balance;
    }
}

const account = new BankAccount("佐藤", 1000);
account.deposit(500);
console.log(account.getBalance());

500円を入金しました。
1500

ここでは、ownerは公開されているので外から読めますが、balanceprivateのため直接アクセスできません。その代わりにgetBalanceメソッドを使って残高を取得する仕組みにしています。

5. ポイント整理

5. ポイント整理
5. ポイント整理

プロパティは「情報」を持ち、メソッドは「行動」を定義する役割があります。両方をうまく組み合わせることで、現実世界のものごとをプログラムの中に表現できるのがオブジェクト指向の考え方です。

TypeScriptでクラスを学ぶことで、ゲームのキャラクターやアプリのユーザー情報、商品管理など、身近なシステムを作る基礎をしっかりと身につけられます。

まとめ

まとめ
まとめ

TypeScriptでクラスを扱うときに欠かせない「プロパティ」と「メソッド」について、ここまで具体例を交えながら順を追って見てきました。改めて振り返ると、プロパティはクラスが持つ特徴や状態を表す大切な要素であり、メソッドはそのクラスがどのように振る舞うかを示す動作のかたまりです。たとえば学校の生徒を表現するなら「名前」「年齢」などがプロパティで、「挨拶をする」「自己紹介をする」といった振る舞いがメソッドに該当します。 プロパティとメソッドの組み合わせは、オブジェクト指向の中心となる考え方で、現実世界の物体や概念をプログラムの中に落とし込むための基礎でもあります。TypeScriptは型が明確に扱えるため、クラスの構造がとても理解しやすく、プロパティやメソッドを用いた設計も自然な形で身につけられます。またアクセス修飾子を使うことで、外部から隠したい情報を守ったり、必要な部分だけ公開したりと、システムの安全性や保守性を高める仕組みを簡単に取り入れることができます。 さらに、複雑な処理をひとまとまりのメソッドとして整理していくことで、コード全体の見通しがよくなり、後から読み返したときにも意図が伝わりやすい構造になります。オブジェクト指向の基礎力は、ゲーム開発、業務アプリケーション、Webサービスのユーザー管理など幅広い分野で役立つ重要なスキルです。TypeScriptのクラス構文は比較的やさしく書けるので、初心者の方でも自然と仕組みになじみやすいのも大きな特徴と言えるでしょう。 ここでは、学んできた内容を整理しつつ、追加のサンプルプログラムを紹介して、理解をさらに深められるようにしてみます。

■ プロパティとメソッドを活用した実践サンプル

下記のサンプルコードは、キャラクターを表すクラスに複数のプロパティとメソッドを定義し、状態の変化をメソッドによって管理する例です。現実的な場面でもよく使われる要素がまとめられています。


class Character {
    name: string;
    hp: number;
    private level: number;

    constructor(name: string, hp: number) {
        this.name = name;
        this.hp = hp;
        this.level = 1;
    }

    attack(target: Character): void {
        console.log(`${this.name}が${target.name}を攻撃した!`);
        target.hp -= 10;
        console.log(`${target.name}のHPは${target.hp}になった。`);
    }

    levelUp(): void {
        this.level++;
        this.hp += 20;
        console.log(`${this.name}はレベルアップした! レベル:${this.level} HP:${this.hp}`);
    }

    getStatus(): void {
        console.log(`名前:${this.name} HP:${this.hp} レベル:${this.level}`);
    }
}

const hero = new Character("ヒーロー", 100);
const monster = new Character("モンスター", 60);

hero.attack(monster);
hero.levelUp();
hero.getStatus();

このコードでは、namehpがプロパティであり、attacklevelUpgetStatusがメソッドです。内部のレベルはprivateで守られており、外部から直接変更できないようにしています。このようにプロパティとメソッドを適切に組み合わせることで、クラスは状態と振る舞いを自然に統合し、複雑な挙動を管理しやすくします。

TypeScriptのクラス構文を使ったプログラミングは、アプリケーション内の情報管理や動作処理を分類し、明確に整理するうえで大きな効果を発揮します。システムの規模が大きくなるほど、クラスを使った設計がコード全体の読みやすさや修正しやすさにつながり、長く維持されるプロジェクトでも扱いやすい構造になります。学べば学ぶほど応用できる幅が広がる分野なので、一度覚えてしまえば長く使える知識となるでしょう。

先生と生徒の振り返り会話

生徒

「先生、プロパティとメソッドの違いがやっとイメージできました!情報と動きの両方をまとめられるんですね。」

先生

「そうなんです。プロパティはそのクラスがどんな姿をしているか、メソッドはどんな行動ができるかを表します。それぞれを整理して使うことで、より現実的なオブジェクトを作れるようになりますよ。」

生徒

「アクセス修飾子も便利ですね。守りたい情報を隠しておけるなんて、ゲームのキャラクターっぽいです!」

先生

「いい気づきですね。外から見せたい部分だけ公開するというのは、設計の大切な考え方です。安全で扱いやすいコードになります。」

生徒

「今日のサンプルコードも分かりやすかったです。メソッドの中でプロパティを使うと、キャラクターに命が吹き込まれたみたいでした。」

先生

「その感覚はとても大事ですよ。オブジェクト指向は『現実をコードで表現する』考え方なので、日常のものをクラス化してみると、より深く理解できるようになります。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

TypeScriptのプロパティとは何ですか?初心者向けに簡単に説明してほしいです

TypeScriptのプロパティとは、クラスが持つ「情報」や「状態」を表す要素で、名前や年齢などのデータを保持するために使われます。クラスは設計図で、プロパティはその設計図に書かれた属性のような役割です。
関連記事:
カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう