01. 객체 리터럴 문법let c: { firstName: string, lastName: string } = { firstName: 'aa', lastName: 'bbb' } console.log(`firstName : ${c.firstName} lastName : ${c.lastName}`); class Person { constructor( public firstName: string, public lastName: string, ) {} } c = new Person('aaa', 'bb1'); // 속성 값의 형식에 맞는 클래스를 대입할 수 도 있다. let cc = new Person('aaa', 'bb1'); console.log(`firstName : ${cc.firstName} lastName : ${cc.lastName}`); | cs |
|
02. 타입 별칭 정의type Age = number; type MyInfo = { name: string age: Age // 위에 정의된 number타입을 갖는 Age타입 } let age: Age = 55; let myInfo: MyInfo = { name: '밍', age: 17 } // 타입의 유효 영역 if(true) { // 위에 정의한 MyInfo 타입을 덮어씀 type MyInfo = { name: string age: Age job: string } let myInfo: MyInfo = { name: '밍', age: 17, job: '건물주, 카페사장' } console.log(`name : ${myInfo.name} age : ${myInfo.age} job : ${myInfo.job}`); } // 다시 처음 정의한 MyInfo타입을 바라봄 let aaa: MyInfo = { name: '밍', age: 17, //job: '건물주, 카페사장' <- 오류발생 } | cs |
|
03. 유니온(합집합, |)과 인터섹션(교집합, &) 타입type Cat = {name: string, purrs: boolean}; type Dog = {name: string, baarks: boolean, wags: boolean}; type CarOrDogOrBoth = Cat | Dog; // Cat, Dog 또는 둘다 할당 가능 type CatAndDog = Cat & Dog; // name 속성이 있다는 사실을 알 수 있음 // CarOrDogOrBoth타입을 이용해 Cat으로 만들기 let 멀티애완: CarOrDogOrBoth = { name: '먼지', purrs: true } // dog로 변신 멀티애완 = { name: '푸', baarks: true, wags: true } // 잡종으로 변신 멀티애완 = { name: '먼지&푸', purrs: true, baarks: true, wags: true } // 변신못하는 온전한 잡종 let 온전한잡종: CatAndDog = { name: '먼지&푸', purrs: true, baarks: true, wags: true } | cs |
|
|