readonly 키워드가 붙을 경우, 그렇지 않는 타입보다, 슈퍼타입이 되는 이유는 무엇일까요? 제가 제대로 이해하고 있는걸까요?
안녕하세요, 타입에 readonly 키워드가 붙을 경우, readonly가 붙은 타입이 슈퍼타입이 된다 이해하고 있습니다. 그 이유가, readonly를 붙은 타입은 그렇지 않은 타입보다 가능한 기능이 적습니다 즉, 타입을 이루는 요소의 갯수가 적습니다. 요소의 갯수가 적으면 슈퍼타입이 됩니다. 요소의 갯수가 적으면, 적은 갯수를 만족하는 집합 갯수가 많기 때문에, 타입이 크다라고 할 수 있고, 요소의 갯수가 많은 경우, 이 많은 갯수를 만족하는 집합의 갯수(경우의수)를 찾기 어렵기?때문에 이것은 타입이 작고, 서브타입이라고 이해하고 있습니다. 반면, ChatGPT를 통해 위의 내용을 검색해보면, readonly 키워드가 붙은 타입이 좁다 라고 합니다(서브타입이라고 합니다) (제가 이해한것으로는 타입이 슈퍼타입이 된다라고 이해하고 있는데요,,,) 그 이유는 readonly는 읽기전용이라, 타입이 좁다고 합니다.. 코에 걸면 코걸이, 귀에 걸면 귀걸이, 이걸 보면 이게 맞는거 같고, 저걸 보면 저게 맞는거 같고, 혼란스럽네요 혹시 이 질문에 대해서 명확하게 답변 해주실 분 있을까요? 참고로, 이와 관련해 '이펙티브 타입스크립트'교재의 내용을 첨부합니다. 이펙티브 책에서는 number[] 타입이, readonly number[]보다 기능이 많기 때문에, 서브타입이라고 합니다 number[]: 서브타입, readonly number[] : 슈퍼타입 readonly가 붙은 곳이 슈퍼타입이 된다 라는 공식이 있는듯 보이는데요,, 공식말고, 어떤 원리이길래 공식?처럼 보이는것일까요?