Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

typescriptの導入 + classについてのメモ

TypeScriptのインストール

npm install typescript

typescriptの実行

.tsファイルを.jsファイルにコンパイルし、作成された.jsファイルを実行する。

tsc ファイル名.ts
node ファイル名.js

typescriptでclassの練習

practice.ts
//クラスを作成
class Animal {

    //プロパティ  名前:型
    name: string;
    age: number;  //intではない

    //コンストラクタはインスタンスに引数を持たせる場合に必要    
    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }

}

//インスタンスを作成
var cat = new Animal("Cat", 7);
console.log(cat.name); //Cat
console.log(cat.age); //7


//コンストラクタは省略が可能
class Animal_no_constructor {

    name: string = "Dog";
    age: number = 3;

}

//コンストラクタを省略した場合は、インスタンスに値を持たせることが出来ない
var dog = new Animal_no_constructor();
//プロパティを出力
console.log(dog.name); //Dog
console.log(dog.age); //3


//メソッドの使い方
class Human {

    name: string;
    score: number;

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

    judge() {

        var message: string;

        if (this.score > 50) {
            message = this.name + "は合格";
        } else {
            message = this.name + "は不合格";
        }

        console.log(message);

    }

}

var takeshi = new Human("Takeshi", 100);
takeshi.judge(); //Takeshiは合格

var taro = new Human("Taro", 45);
taro.judge(); //Taroは不合格


//継承
class Oya {

    name: string;

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

    hello() {
        console.log("こんちわー");
    }

}

class Kodomo extends Oya {

    constructor(name: string) {
        //Oyaのthis.nameを受け継ぐ
        super(name);
        this.name = name;
    }

    say() {
        //親クラスOyaのhelloメソッド
        super.hello();
        console.log("あの" + this.name + "!?");
    }

}

var yoshida = new Kodomo("yoshida");
yoshida.say(); //こんちわー あのyoshida!?


//デフォルト引数
class Menu {

    item_number: number;

    constructor(item_number: number = 0) {
        this.item_number = item_number;
    }

    say_item_name() {
        var array = ["ラーメン", "うどん", "蕎麦"];
        console.log(array[this.item_number]);
    }

}

var soba = new Menu(2);
soba.say_item_name(); //蕎麦

var wasureta = new Menu();
wasureta.say_item_name(); //ラーメン(引数がないので自動で0に)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away