본문 바로가기
강의 실습/한 입 크기로 잘라먹는 타입스크립트(TypeScript)

객체

by Jint 2024. 7. 24.

한 입 크기로 잘라먹는 타입스크립트 - 객체

- src/chapter3.ts

// 객체 (Object)
let user: object = {
    id: 1
  , name: '송진성'
};

// object 로 타입 선언시 점표기법으로 객체 프로퍼티 접근시 오류
// user.id;
// 선언한 값이 객체라는 정보 밖에 없기 때문. 그 이상은 모름.

// 객체 리터럴 타입 활용 : 중괄호 안에 프로퍼티의 타입들까지 정의
let user2: {
    id: number;
    name: string;
} = {
    id: 1
  , name: '송진성'
};

user2.id; // 오류없이 수행됨

// 복습
let dog: {
    name: string;
    color: string;
} = {
    name: '돌돌이'
  , color: 'brown'
};


타입스크립트에서는 객체를 이루는 프로퍼티나 메서드가 어떻게 생겼는지, 객체 구조를 기준으로 타입을 정의 한다.
타입스크립트의 이런 특징을 '구조적 타입 시스템' 이라고 부른다.
프로퍼티를 기준으로 타입을 결정하는 시스템이므로, 'Property Based Type System' 이라고 부르기도 한다.

C언어나 자바는 이름을 기준으로 타입을 정의한다. 이것을 '명목적 타입 시스템' 이라고 부른다.

- src/chapter3.ts

...
// 있어도 되고 없어도 되는 선택적 프로퍼티 정의
let user3: {
    id?: number; // 선택적 프로퍼티 (Optional Property)
    name: string;
} = {
    id: 1
  , name: '송진성'
};
// 프로퍼티 뒤에 ? 추가.

user3 = {
//    id: 2,
    name: '홍길동'
}

// 프로퍼티의 값을 바꾸는 것을 막아주는 readonly
let config: {
    readonly apiKey: string // 읽기전용 프로퍼티
} = {
    apiKey: 'MY API KEY'
}

// config.apiKey = 'hacked'; // 오류 발생



참고링크 : https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%ED%81%AC%EA%B8%B0-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8#

 

한 입 크기로 잘라먹는 타입스크립트(TypeScript) 강의 | 이정환 Winterlood - 인프런

이정환 Winterlood | 문법을 넘어 동작 원리와 개념 이해까지 배워도 배워도 헷갈리는 타입스크립트 이제 제대로 배워보세요! 여러분을 타입스크립트 마법사🧙🏻‍♀️로 만들어드립니다., 프론

www.inflearn.com

'강의 실습 > 한 입 크기로 잘라먹는 타입스크립트(TypeScript)' 카테고리의 다른 글

Enum 타입  (0) 2024.07.27
타입 별칭과 인덱스 시그니처  (0) 2024.07.25
배열과 튜플  (1) 2024.07.23
원시타입과 리터럴타입  (6) 2024.07.22
기본타입  (0) 2024.06.17

댓글