メモ > 技術 > プログラミング言語: TypeScript > TypeScriptを試したメモ(Ver2)
TypeScriptを試したメモ(Ver2)
// スコープ内で有効な変数
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]);