타입도 변수에 담아쓰자

고재현·2023년 8월 6일
0

TypeScript

목록 보기
5/13
post-thumbnail

Type alias

let 동물 : string | number | undefined ;

라는 변수처럼 타입이 너무 많고 복잡할 때가 있다.
그럴 때 이제 type alias를 이용하면 된다.

type Animal = string | number | undefined;
let 돔울 : Animal;

이렇게 타입을 변수처럼 만들어서 쓴다.
관습처럼 type alias는 대문자로 시작하긴한다.

object 타입도 저장 가능

예를들어 아래와 같은 teacher라는 변수가 있다고 하자.

let teacher :{
	name : string,
    age : number,
} = {name : 'john', age: 20}

딱 봐도 복잡해 보인다.
하지만 type alias를 사용하면

type 사람 = {
  name : string,
  age : number,
}
let teacher: 사람 = {name:'john', age:30}

이렇게 깔끔하게 바뀐다.

Readonly

const 여친 = {
	name : '엠버'
}
여친.name = '유라';

원래 const 변수는 값이 변하지 않지만,
object 자료를 const에 집어넣으면 object 내부는 마음대로 변경이 가능하다.

  • 왜?
    const 변수는 재할당만 막아주지, 그 안에 있는 object 속성을 바꾸는 것에는 관여하지 않기 때문이다.
    그때 object 속성이 바뀌지 않게 하는 것이 바로 readonly 키워드다.
type Girlfriend = {
	readonly name : string,
}
let 여친:Girlfriend = {
	name : '엠버'
}
여친.name = '유라';

자, 이렇게 readonly 키워드로 특정 속성을 변경 불가능하게 만들었다.

속성 몇개가 선택사항이라면?

어떤 자료는 color, width 속성이 둘다 필요하지만
또 어떤 자료는 color 속성이 있어도 되고, 없어도 된다면
"?" 하나면 해결할 수 있다.

type Square = {
	color ? : string,
  	width : number,
}

let 네모 : Square = {
	width : 100
}

이러면 color 속성이 없어도 에러가 뜨지 않는 것을 확인 할 수 있다.

하나 만들어 보기

  1. 이름, 전화번호, 이메일, 미성년자 여부 속성을 옳은 타입인지 검사하는 type alias 만들기
  2. 미성년자 여부 속성은 true/false만 들어올 수 있음
type User = {name:string, email:string, phone: string}
type Adult = {adult:boolean}

type NewUser = User & Adult;

let 정보:NewUser{
	name : 'kim',
    email : ggg@ggg.com
    adult : false,
    phone : 1234
}

대충 이렇게 해주면 될 것 같다.

profile
잘못된 내용이 있다면 알려주세요..!

0개의 댓글