TypeScript Type System Example
// Any
var x: any; // 明示的
var y; // y: any と同じ
var z: { a; b; }; // z: { a: any; b: any; } と同じ
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 と同じ
// Boolean
var b: boolean; // 明示的
var yes = true; // yes: boolean = true と同じ
var no = false; // no: boolean = false と同じ
// String
var s: string; // 明示的
var empty = ""; // empty: string = "" と同じ
var abc = 'abc'; // abc: string = 'abc' と同じ
// Null
var n: number = null; // 基本型は Null 設定可
var x = null; // x: any = null と同じ
// Undefined
var n: number; // n: number = undefined と同じ
var x = undefined; // x: any = undefined と同じ
// Enum
enum Color { Red, Green, Blue }
var myColor = Color.Red;
Console.log(Color[myColor]); // Red
TypeScript Interface, Classes Example
interface Dog {
name: string;
Talk: () => string;
}
class Corgi implements Dog {
name: string;
constructor(name: string) {
this.name = name;
}
Talk(): string {
return "Bow wow!";
}
}
class myDog extends Corgi {
constructor() {
super("reo");
}
Talk(): string {
return "Wan wan!";
}
}
var reo = new myDog();
alert(reo.Talk());
TypeScript Module Example
module Sayings {
var local = 2;
export class Greeter {
...
}
}
var gt = new Sayings.Greeter();
// main.ts
import log = require("./log");
log.message("Hello");
// log.ts
export function =
message(s: string) {
console.log(s);
}
Generics : Parameterized Types
class Human<T> {
constructor(public name: T) { }
Talk(): T { return this.name; }
}
var me = new Human<string>("Akira");
alert(me.Talk());
Arrow Function Expressions
var s1 = function (x: number) { return Math.sin(x); } // 標準式
var s2 = (x: number) => { return Math.sin(x); }
var s3 = (x: number) => Math.sin(x)
var s4 = x => { return Math.sin(x); }
var s5 = x => Math.sin(x)
var s0: (x: number) => number;
s0 = x => Math.sin(x)
Get Accessor / Set Accessor
class Who {
private _name: string;
get Name() { return this._name; }
set Name(name: string) { this._name = name; }
}
var me = new Who();
me.Name = "Akira Inoue";
console.log(me.Name);
詳細
詳細
詳細
Unit Test for TypeScript
test("will add 5 to number", function () {
var res: number = mathLib.add5(10);
equal(res, 15, "should add 5");
});