03장 객체와 타입

Iris·2022년 1월 2일
0
post-thumbnail

📖 전예홍, ⌈Do it! 타입스크립트 프로그래밍⌋, 이지스퍼블리싱, 2021

03-2 객체와 인터페이스

익명 인터페이스

let ai: {
  name: string
  age: number
  etc?: boolean
} = {name: 'Iris', age: 24}

function printMe(me: {name: string, age: number, etc?: boolean}) {
  console.log(
    me.etc ?
      `${me.name} ${me.age} ${me.etc}` :
      `${me.name} ${me.age}`
  )
}

printMe(ai) // Iris 24

03-3 객체와 클래스

생성자

class Person {
  constructor(public name: string, public age?: number) {}
}

let iris : Person = new Person('Iris', 24)

console.log(iris) // Person { name: 'Iris', age: 24 }

03-4 객체의 비구조화 할당문

잔여 연산자

let address: any = {
  country: 'Korea',
  city: 'Seoul',
  address1: 'Gangnam-gu',
  address2: 'Sinsa-dong'
}

const {country, city, ...detail} = address

console.log(detail)

// 실행 결과
{ address1: 'Gangnam-gu',
  address2: 'Sinsa-dong' }

전개 연산자

let part1 = {name: 'jane'}, part2 = {age: 22, city: 'Seoul'}
let merged = {...part1, ...part2}
console.log(merged)

// 실행 결과
{ name: 'jane', age: 22, city: 'Seoul' }

03-5 객체의 타입 변환

타입 단언

export default interface INameable {
  name: string
}
import INameable from './INameable'

let obj: object = {name: 'Iris'}

let name1 = (<INameable>obj).name
let name2 = (obj as INameable).name

console.log(name1, name2) // Iris Iris

이번 스터디에서 특별히 좋았던 점이나 어려웠던 점, 새로 알게 된 부분

타입스크립트의 타입 종류와 인터페이스, 클래스, 타입 단언 등 여러 구조에 대해 학습했다. 대부분 자바스크립트와 비슷한 문법이었지만 생성자와 타입 단언 같은 부분은 새롭게 이해한 문법이었다. 이 부분부터 단단히 다지고 가야 다음 장들을 순조롭게 학습할 수 있다고 생각하여, 예제를 따라 작성해 보며 반복해서 읽고 넘어갔다.

profile
👩🏻‍💻 Web Front-end Developer

0개의 댓글