Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TypeScript オブジェクト指向プログラミング学習プロジェクト

このプロジェクトは、TypeScriptを使用したオブジェクト指向プログラミングの基本概念を学習するために作成されました。抽象クラス、インターフェース、継承などの概念を実践的に理解することを目的としています。

機能

このプロジェクトには以下の実装が含まれています:

  1. 抽象クラスとインターフェース

    • Person 抽象クラス
    • Human インターフェース
    • 具象クラス(Teacher, Engineer
  2. オブジェクト指向の概念

    • カプセル化(private、protected修飾子の使用)
    • 継承(抽象クラスの拡張)
    • ポリモーフィズム(インターフェースの実装)

プロジェクト構造

udemy_learn/
├── doc/                 # ドキュメント
│   ├── class.md        # クラス階層の詳細説明
│   └── interface.md    # インターフェースの詳細説明
├── src/
│   ├── lib/            # ソースコード
│   │   ├── class.ts    # クラス実装
│   │   └── interface.ts# インターフェース実装
│   └── tests/          # テストコード
│       ├── class.test.ts
│       └── interface.test.ts
└── ...設定ファイル

始め方

  1. 環境準備

    # パッケージのインストール
    npm install
  2. テストの実行

    # すべてのテストを実行
    npm test
  3. TypeScriptのコンパイル

    # コードのコンパイル
    npm run build

主要な実装

Person抽象クラス

abstract class Person {
    static readonly species = "Homo sapiens";
    readonly name: string;
    protected age: number;
    
    abstract get job(): string;
    abstract set job(value: string);
    // ...
}

Humanインターフェース

interface Human {
    name: string;
    age: number;
    greeting(message: string): void;
}

テスト

プロジェクトには包括的なテストスイートが含まれています:

  • クラスの基本機能テスト
  • インターフェース実装テスト
  • エラーケースのテスト
  • 継承機能のテスト
# 特定のテストファイルの実行
npm test class
npm test interface

ドキュメント

詳細なドキュメントは doc フォルダにあります:

技術スタック

  • TypeScript 5.x
  • Jest(テストフレームワーク)
  • Node.js

学習ポイント

  1. TypeScriptの型システム

    • 静的型付け
    • 型安全性
    • インターフェースと型定義
  2. オブジェクト指向プログラミング

    • 抽象化
    • カプセル化
    • 継承
    • ポリモーフィズム
  3. テスト駆動開発

    • Jestを使用したユニットテスト
    • テストカバレッジ

ライセンス

このプロジェクトはMITライセンスの下で公開されています。

About

TypeScript learning project with OOP concepts

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages