TypeScript - 타입과 옵셔널 (2) Readonly, Tuple, Any

Younkyum J·2022년 7월 3일
0

TypeScript

목록 보기
2/8
post-thumbnail

Readonly

TS는 Readonly를 지원한다. readonly는 선언하는 시점 이후에는 변경이 불가능하고 오직 읽는 것만 가능한 상태이다.

사용법은 다음과 같다.

type Player = {
  readonly name: string
  age: number
}

선언문 앞에 readonly를 작성하여 사용한다.

readonly 선언

const (변수명): readonly (변수타입) = ()

readonly를 통해서 변하지 않고, 오직 조회만 가능해야 하는 값들을 보호할 수 있다.
readonly를 수정하려 한다면 이런식의 오류가 발생한다.

const numbers: readonly number[] = [1, 2, 3, 4]
numbers.push(2) // Error: 'number' only refers to a type, but is being used as a value here.



Tuple

튜플은 Array의 특정 위치에 특정 타입을 강제하는 구조이다.
사용하는 방식은 다음과 같다.

const student: [string, number, boolean] = ["Younkyum", 0103, true]

TS는 한 Array에 다른 값들이 서로 들어가는 것을 허용하지 않는다.
하지만 튜플을 사용할 경우 특정 위치에 한해 특정 타입을 강제하는 방식으로 한 Array에 다른 값이 들어가는 것을 허용한다.

Tuple의 선언

const (변수명): [(타입), (타입), ..., (타입)] = [(값들)]

이때, 만약 다른 타입을 해당 인덱스에 넣으려고 할 경우 오류가 발생한다.

const player: [string, number, boolean] = ["younkyum", 0103, true]
player[0] = 1 // Error: Type 'number' is not assignable to type 'string'



Any

변수 any는 TS에서 변수 타입을 어떤 것이든 사용하고 싶을 경우 사용한다.
일반 JavaScript와 동일하게 사용하는 것과 같다.

단, 사용을 하는 경우 TS를 쓰는 이유가 없어지므로 조심하자.

const a: any = true
const b: any[] = [1, 2, 3, 4]





*본 내용은 노마드코더 "Typescript로 블록체인 만들기"에서 습득한 내용을 바탕으로 재구성한 것 입니다.!

profile
기획자입니다. 근데 이제 고양이와 애플덕후와 개발을 곁들인.

0개의 댓글