21. 動的型付けから静的型付けへ
TypeScript Type System
• 静的型付けシステムの導入
• JavaScript のあいまいさを排除
• 安全性・可読性・生産性の向上 interface I { }
class C { }
• 型付けするか否かは自由 module M { }
• 動的型付けの利点も生かせる { s: string; }
number[]
() => bool
• any 型: すべての型の基本
• プリミティブ (基本) 型
• number, string, bool, null, undefined
• オブジェクト型
• class, module, interface, literal
• void 型: 戻り値なしの関数で使用
22. 静的型付け記述例 (プリミティブ型)
TypeScript Type System Example
// Any // Boolean
var x: any; // 明示的 var b: bool; // 明示的
var y; // y: any と同じ var yes = true; // yes: bool = true と同じ
var z: { a; b; }; // z: { a: any; b: any; } と同じ var no = false; // no: bool = false と同じ
function f(x) { // f(x: any): void と同じ
console.log(x); // Number
} var x: number; // 明示的
var y = 0; // y: number と同じ
var z = 123.456; // z: number = 123.456 と同じ
// Null
var n: number = null; // 基本型は Null 設定可
var x = null; // x: any = null と同じ // String
var s: string; // 明示的
var empty = “”; // empty: string = “” と同じ
// Undefined var abc = ‘abc’; // abc: string = “abc” と同じ
var n: number; // n: number = undefined と同じ
var x = undefined; // x: any = undefined と同じ
31. TypeScript ロードマップ
Compiler and Language Improvements
• 0.8.1.1 (Alpha): 現在
• 0.8.2
• Improve compiler performance
• 0.8.3
• Generics
• Improvements to type system to help model a larger variety of JS libraries
• 0.9.x
• Align with ECMAScript 6
• Community site for .d.ts files
• Usability improvements to VS plugin
• 1.x
• Async/Await, Mixins, Protected access