ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TS기초]객체 타입
    TypeScript 2023. 6. 15. 10:53

     

    목차

    1.객체 타입 정의하기

    • 객체 리터럴
    • 인터페이스
    • 타입별칭
    • 클래스

    2.객체 프로퍼티 옵션

    • 인덱스 시그니처
    • 옵셔널 프로퍼티
    • 읽기 전용 프로퍼티

    1.객체 타입을 지정하는 여러가지 방법

    1️⃣객체 리터럴 타입

    :단일로 사용되는 작은 객체를 선언할 때 사용

    let user:{
      id:string;
      name:string;
    } = {
      id:"아이디",
      name:"이름",
    }

    2️⃣인터페이스

    :재사용 가능한 타입 정의를 위해 주로 사용된다.

    type User ={
      id:string;
      name:string;
    }
    
    const user:User = {
      id:"아이디",
      name:"이름",
    }

    3️⃣타입 별칭

    type User ={
      id:string;
      name:string;
    }
    
    const user:User = {
      id:"아이디",
      name:"이름",
    }

    4️⃣클래스

    class User{
      id:string;
      name:string;
    	
      constructor(id:string,name:string){
        this.id = id;
        this.name = name;
      }
    }
    
    const user = new User("아이디","이름");

     


     

    2.객체 프로퍼티 옵션

    1️⃣인덱스 시그니처(Index signature)

    객체 타입의 프로퍼티를 동적으로 정의할 수 있다.

    객체는 일반적으로 프로퍼티 이름을 알고 있어야 하지만, 동적으로 접근해야하는 경우가 있다.

    이럴때 인덱스 시그니처를 활용하면 프로퍼티에 동적으로 접근이 가능해진다.

    type Codes = {
      [key:string] : number;
    }
    
    let errorCode:Codes = {
      Korea:82,
      japan:81,
    }

    2️⃣옵셔널 프로퍼티(Optional Property)

    객체 타입에서 프로퍼티의 존재 여부를 선택적으로 나타낼 수 있다.

    프로퍼티 이름 뒤에 물음표를 붙여 사용하면 선택적 프로퍼티로 적용된다.

    type Users = {
      id:string;
      nickname?:string;
    }
    
    let userK:Users={
      id:"kim",
    }

    3️⃣읽기 전용 프로퍼티(Readonly Property)

    값의 변경을 막기 위해 속성 앞에 readonly를 추가해주면 값의 할당을 막아준다.

    type Users = {
      id:string;
      nickname?:string;
      readonly userCode:number;
    }
    
    let userK:Users={
      id:"kim",
      userCode:1
    }

     

    'TypeScript' 카테고리의 다른 글

    [TS기초]함수 타입  (0) 2023.06.15
    [TS기초]기본 타입  (0) 2023.06.13
    대수 타입  (0) 2023.06.11
    [Generic]제네릭 함수  (0) 2023.06.06
    Type Casting(타입 형변환)  (0) 2023.06.05
Designed by Tistory.