【TypeScript】interface

用法 interface(接口),可以強制定義class的屬性名稱,數量,型別 定義class //インターフェイスは定義だけで実装がない、クラスのようなものですものです //クラスに特定な機能を実装を強制する目的で利用されます interface Animal { name: string;//「name」というプロパティーをクラスに強制する legs: number; isCry: boolean; cry(): void; } class Dog implements Animal { name: string=’Maru’; legs: number=4; isCry: boolean=true; cry(): void{ if (this.isCry) { console.log(‘bow, wow!’); } } } 定義物件 interface Animal { name: string; legs: number; isCry: boolean; cry(): void; } let Dog: Animal { […]

【TypeScript】Generics 泛型

用法 透過參數客製化class,是TypeScript獨有的機能 傳統的寫法 class NumberStore{ data: number; } class StringStore{ data: string; } //型チェックができません class AnyStore{ data: any } 使用泛型的寫法 //Tという文字は自由に名付けられる class Store<T>{ data: T; getStore(): T{ return this.data; } } let stringStore=new Store(); stringStore.data = ‘X’; console.log(stringStore.getStore()); //’X’ let numberStore = new Store(); numberStore.data = 100000; console.log(numberStore.getStore()); //100000 函數的泛型 function hello<T>(keyword: T) { console.log(`Log: […]

【JavaScript】getter / setter

getter跟setter都是寫在物件底下的function方法 getter 給物件綁定訪問時(Access)可取得的函數 var obj = { log: [‘example’,’test’], get latest() { if (this.log.length == 0) { return undefined; }else{ return this.log[this.log.length – 1]; } } } console.log(obj.log); //[‘example’, ‘test’] console.log(obj.latest); // “test” setter setter可以設定參數,然後讓物件回傳不同的值 //language 是一個物件 var language = { set current(name) { this.log.push(name); }, log: [] } language.current = ‘EN’; //透過setter設定參數 console.log(language.log); // […]