타입도 변수에 담아서 쓸 수 있다.
type Animal = string | number | undefined;
타입변수의 특징은 type
을 먼저 선언한 후
대문자
로 변수이름을 지정해준다.
들어올 타입을 기입
해주면 된다.
const 동물들 : Animal = "고양이";
type Animal2 = {name:string, age:number}
const 동물들 : Animal2 = { name: "고양이", age:10}
우리는 오브젝트를 타입변수를 활용해 타입을 지정할 수 있었다.
오브젝트 안에 키값을 변경하지 않도록 설정하고 싶다면? 어떻게 해야 할까?
코드로 예시를 들어보자
type Member = {name: string}
타입 변수로 name이라는 키에 string값을 지정하고
const 사람:Member = {name:'엠버'}
Member라는 타입변수를 이용해 string 타입을 지정하고
이름은 엠버라는 키값을 넣어주었다.
사람.name = '유라'
이름을 유라로 변경을하면 에러 없이 그대로 변경을 할 수 있다.
여기서 키값을 변경 할 수 없도록 락을 거는 방법을 알아보자.
readonly
를 앞에 붙여 주는 방법
type Member = {readonly name : string}
이렇게 하면
읽기 전용 속성이므로 'name'에 할당할 수 없습니다 라는 에러메세지가 뜬다.
하지만 readonly의 속성은 에디터에 에러를 띄어줄 뿐
Js실행과는 전혀 상관이 없다. 참고하자^^
?
를 키뒤에 붙여주는 방법은 뒤에 어떤 타입의 데이터가 들어올지 애매할 때 사용해준다.
type Member = {name?:string}
뒤에 ?의 의미는 무엇일까?
string|undefined를 의미한다.
따로 선언되어 있는 오브젝트타입을 합치고 싶다면 어떻게 해야 할까?
type PositionX = {x:number}
type PositionY = {y:number}
타입이 각각 따로 지정된 타입변수의 경우 새로운 변수에 &
를 넣어 사용 해줄 수 있다.
type PositionAll = PositionX & PositionY; // {x:number,y:number}
사용해보기
const position:PositionAll ={x:10,y:20}
이렇게 &
연산자를 활용해 합쳐 사용 할 수 있다.
.
.
정답
type Check = {name:string, phone:number, email:string}
const 검사:Check = {name:'kim',phone:123}