compilerOptions : 컴파일러 옵션 지정 target : 컴파일될 ES(JS) 버전 명시 - “ES2015” 권장 module : 모듈 시스템 지정 - “CommonJS”, “AMD”, “ESNext” moduleResolution : 모듈 해석 방식 지정 - “Node”, “Classic” esModuleInterop : ESM 모듈 방식 호환성 활성화 여부 isolatedModules : 모든 파일을 모듈로 컴파일, import 혹은 export 필수 baseUrl : 모듈 해석에 사용할 기준 경로 지정 typeRoots : 컴파일러가 참조할 타입 선언(d.ts)의 경로 지정 lib : 컴파일에서 사용할 라이브러리 지정 - “ESNext”, “DOM” strict : 더 엄격한 타입 검색 ..
FE/Typescipt
제네릭(Generic) 재사용성을 높이기 위해 사용 함수 function toArray (a:T, b:T) { return [a,b] } toArray('Neo','Tom') toArray(1, 2) 클래스 class User { constructor(public payload : P) {} getPayload() { return this.payload } } interface UserA { name:string age:number isValid:boolean } const IU = new User ({ name : 'IU', age : 23, isValid : true }) 인터페이스 interface MyData { name : string value : T } const dataA : MyData ..
접근 제어자(Acess Modifier) public : default, 어디서나 자유롭게 접근 가능 protected : 나와 파생된 후손 클래스 내에서 접근 가능 private : 클래스 내에서만 접근 가능 class userA { constructor(public first : string, protected last : string,private age : number) { this.first = first this.last = last this.age = age } } class UserB extends UserA() { getAge() { return `${this.first} ${this.last} is ${this.age}` //first, last 사용 가능 but age는 접근 불간ㅇ ..
명시적 this this 타입을 지정해 주지 않으면 자동으로 any가 됨 typescript에서는 any를 지양해야 함 interface Cat { name : string age : number } const cat : Cat ={ name : 'kitty', age : 3 } function hello(this: Cat, message : string) { console.log(`Hello ${this.name}, ${message}`) } hello.call(cat, 'You are sooooo cute!'); 오버로딩 function add(a:string, b:string) : string //타입 선언 function add(a:number, b:number) : number //타입 선언 f..
인터페이스 선택적 속성 ? 읽기 전용 속성 readonly interface User { name : string readonly age : number: string isValid?: boolean } const IU : User { name : 'IU', age : 12, //isValid 속성은 선택적이므로 오류가 뜨지 않음 } IU.age = 22 // readonly로 작성되었기 때문에 오류발생 호출 시그니처(Call Signature) 함수의 타입 지정 interface GetName { //호출 시그니처 (message : string) : string } interface User { name : string age : number getName : GetName // getName : (..
Type 종류 string number boolean null / undefined array const arr : (string|number)[] = ['Apple', 1, 2, 'Banna', 3] object : 속성의 타입을 명시하는 것으로 보통 사용함 const user: { name : string age : number isValid : boolean } = { name : 'Hamo' age : 83, isValid : true } object라고 타입 지정하는 것은 별로 권장되지 않는 사용법 interface interface User { name : string age : number isValid : boolean } const userA : User {...} const userB ..