■目次
TypeScriptを試したメモ
■TypeScriptを試したメモ
// スコープ内で有効な変数 let let_test = 10; { let let_test = 20; } console.log(let_test); // 10 // 定数 const const_test = 30; //const_test = 40; // コンパイルエラー console.log(const_test); // 変数の型 let flag: boolean = false; let i: number = 2; let message: string = 'Hello!'; let value: any = '型なし'; console.log('flag=' + flag); console.log('i=' + i); console.log('message=' + message); console.log('value=' + value); // テンプレート文字列 var count: number = 1; var text = ` テンプレート文字列。 答えは${count + 100}です。 複数行を出力できます。 `; console.log(text); // 可変長の引数 function length_test(...args: number[]) { console.log(args); // [2, 4, 6] } length_test(2, 4, 6); // 配列とof let charactors: string[] = ['a','b', 'c']; for (let charactor in charactors) { console.log('charactor=' + charactor); } for (let charactor of charactors) { console.log('charactor=' + charactor); } // Enum enum Color { Blue = 10, Red = 20 }; console.log(Color.Red); // Void function void_test(): void { console.log('void_test'); } void_test(); // 引数・戻り値に型を定義する(省略しても可) function return1_test(price: number): string { return price.toLocaleString() + '円'; } console.log(return1_test(1000)); // 複数の型を返す function return2_test(x: number): number | string { if (x >= 0) { return 1; } else { return 'error'; } } console.log(return2_test(100)); // アロー関数式 let add1 = (x: number): number => x + 1; console.log(add1(2)); let add2 = (x: number): number => { return x + 1; } console.log(add2(2)); // クラス class Animal { constructor() { console.log('animal'); } walk() { return 'walking'; } } interface Speaker { say(): void; } class Person extends Animal implements Speaker { private firstName; private lastName; set fullName(name: string) { let names = name.split(' '); this.firstName = names[1]; this.lastName = names[0]; } get fullName(): string { return this.lastName + this.firstName + 'さん'; } say() { return 'Hello'; } } let person: Person; person = new Person(); person.fullName = '小田 花子'; console.log(person.walk()); console.log(person.say()); console.log(person.fullName); // ジェネリック function generic_test<T>(x: T) { console.log(x); } generic_test<string>('abc'); generic_test<number>(123); generic_test(123); // モジュール module A { export function a() { console.log('a'); } } module B { export function b() { A.a(); console.log('b'); } } B.b(); // タプル let touple_test: [number, string] = [1, 'hello']; console.log(touple_test[0]); console.log(touple_test[1]);