Skip to content

Udemy/section5/75: readonly with interface, type #50

Description

@4BFC

✍Udemy/section5/75: readonly with interface, type

해당 issue는 실습을 하지 않고 개념만 작성한 issue 입니다. 진도를 빠르게 넘어가기 위함이니 아래 개념만 익혀두면 설명이 충분합니다. 따라 실습관련 브랜치는 없습니다.

🔥KeyWord

  • readonly
  • const
  • interface
  • type

📝Description

  • interface안에 private, public과 같은 접근제한을 걸어 둘 수는 없다. 하지만 readonly란 접근 제한자는 사용이 가능하다.
  • readonly는 한번만 사용할 수 있다. 즉, 재할당을 할 수가 없다.
    • const와 readonly의 차이
      • const
        • const는 변수를 선언할 때 사용되며, 변수에 재할당이 불가능하다.
        • const로 선언된 변수는 초기화 시 반드시 값을 할당해야 하며, 그 변수 자체에 재할당이 불가능하다.
        • 기본 타입(primitive type) 의 경우 값을 변경할 수 없지만 객체나 배열 같은 참조 타입의 경우 속성이나 요소는 변경 가능하다.
        • const는 변수에 재할당을 허용하지 않지만 객체나 배열의 경우 내부 속성이나 요소는 변경 가능하다.
      • readonly
        • readonly는 타입 시스템에서 사용되며 객체의 속성이나 클래스의 프로퍼티가 수정되지 않도록 만든다.
        • readonly는 객체의 특정 속성에 적용되어 해당 속성은 초기화 이후 수정이 불가능하다.
        • 클래스의 필드나 인터페이스, 타입에서 속성의 수정 불가능성을 정의할 때 사용된다.
        • readonly는 읽기 전용 속성이며 참조 타입의 속성을 보호한다. 즉, 객체의 특정 속성을 읽기 전용으로 만들 수 있다. 정리하면 readonly는 객체의 속성에 적용되며 한 번 설정된 값은 변경 불가하지만 다른 속성은 변경 가능하다.

📌Summary

  • const보다 readonly가 더욱 내가 생각한 js와 같은 확장 문법에서 사용가능한 private에 가깝다는 것을 느꼈다. 이에 readonly를 잘 사용만 한다면 유지관리하는데 많이 유용할 수 있다고 생각했다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions