Typescript入門 その1 typescript

modified at:08 March 2016

TypeScriptの概要

変数、型、スコープ

      var counter; // unknown (any) type
var counter = 1; // number (inferred)
var counter : number; // numnber
var counter : number = 1; // number
   

基本的な型は、Boolean, number, string, array, void, ユーザが定義したEnumがある。

  1. boolean: trueかfalseしか持つことができない。
  2. number: 浮動小数点でIntegerはない(みたい)。
  3. string: シングルクォーテーションかダブルクォーテーションのいずれかで囲まれいる文字列。片方は片方を内部に持つことができる。
  4. Array: 配列。genericが使え、var list: Arrayとかできる。
  5. enum: デフォルトではenumは0で始める。
  6. any: 明示的に何にでも使えると宣言する。var list:any[] = [1, true, ‘string’];などとも書ける。
  7. void: メソッドの返値などに利用

型ではないが、Typescriptではundefinedもnullも利用できる。

      var variable ; // undefined
var variable = null; // nul
   

var, let, const

varは変数の宣言でそのスコープは一番近くの関数ブロックになる(ifやfor等のブロックスコープがないことに注意が必要!)。

また、このvarに対して、letというのはブロックスコープにすることが可能で、例えば、次のようなTypescriptのコードは、そのあとのようになる!

      1 var var_out = "Chiku";
2 var var_in = "tomoko";
3 if(true){
4   let var_in = "Kazuro";
5   console.log(var_in);
6 }
7 console.log(var_out);
8 console.log(var_in);
   
      1 var var_out = "Chiku";
2 var var_in = "tomoko";
3 if (true) {
4     var var_in_1 = "Kazuro";
5     console.log(var_in_1);
6 }
7 console.log(var_out);
8 console.log(var_in);
   
      interface Employee1 {
    name: string;
    salary: number;
}

var a: Employee1 = { name: 'Bob', salary: 40000 }; // OK
var b: Employee1 = { name: 'Bob' }; // Not OK, you must have 'salary'
var c: Employee1 = { name: 'Bob', salary: undefined }; // OK
var d: Employee1 = { name: null, salary: undefined }; // OK

// OK
class SomeEmployeeA implements Employee1 {
    public name = 'Bob';
    public salary = 40000;
}

// Not OK: Must have 'salary'
class SomeEmployeeB implements Employee1 {
    public name: string;
}

interface Employee2 {
    name: string;
    salary?: number;
}

var a: Employee2 = { name: 'Bob', salary: 40000 }; // OK
var b: Employee2 = { name: 'Bob' }; // OK
var c: Employee2 = { name: 'Bob', salary: undefined }; // OK
var d: Employee2 = { name: null, salary: 'bob' }; // Not OK, salary must be a number

// OK, but doesn't make too much sense
class SomeEmployeeA implements Employee2 {
    public name = 'Bob';
}
   

asdf

  created at:08 March 2016




[投稿する]場合は、 枠の中の図形をマウスでドラッグして、(あるいは指で)なぞって下さい。それほど厳密でなくても大丈夫です。