티스토리 뷰
type alias
let 동물 : string | number | undefined
위와 같이 타입이 너무 긴 경우 or 반복해서 사용하는 경우 따로 변수에 담아서 사용할 수 있다.
type이라는 키워드를 사용!
type Animal = string | number | undefined;
let 동물: Animal = "kim";
type 타입변수명 = 타입종류
이렇게 type 키워드로 변수 만드는 것을 type alias문법 이라고 한다.
object인 경우도 가능하다.
type Animal = { name: string; age: number }
let 동물: Animal = { name: "kim", age: 20 };
*일반변수와 차별화를 두기 위해서 타입변수명의 맨앞문자는 대문자를 사용한다.
readonly
const 변수는 값이 변하지 않는 변수를 만들고 싶을때 사용한다.
but 오브젝트 자료를 const에 넣으면 오브젝트 내부는 마음대로 변경이 가능
const 인물 = {
name : '홍길동'
}
인물.name = '김길동';
만약 const의 오브젝트 수정을 막으려면?
type People = {
readonly name : string
}
const 인물 : People = {
name : '홍길동'
}
인물.name = '김길동'; //name에 readonly라는 속성이 있어서 오류남
readonly 키워드를 속성 앞에 붙이면 된다.
name이라는 속성의 값이 변경되는 걸 막아줌
만약 속성 몇개가 선택사항이라면?
오브젝트 속성 안에서도 물음표 사용 가능하다.
type Girlfriend = {
name?: string;
};
const 여친: Girlfriend = {
name: "유라",
};
여친.name = "수진";
물음표의 뜻이 뭐였냐
string | undefined 과 같은 뜻
type 변수도
union type으로 합치기 가능하다.
type Name = string;
type Age = number;
type Person = Name | Age;
& 연산자로 오브젝트에 지정한 타입의 경우도 합치기 가능!
type PositionX = { x: number };
type PositionY = { y: number };
//오브젝트 두개 합치기
type NewType = PositionX & PositionY; //{ x : number, y : number }
let position : NewType = {x:10, y:10}
*참고 type 변수는 재정의가 불가능하다.
예제)
1. object 자료형이여야 한다.
2. color라는 속성을 가질 수도 있고 항상 문자가 들어와야 한다.
3. size라는 속성이 있어야하고 항상 숫자가 들어와야 한다.
4. position이라는 변경 불가능한 속성이 있어야하며 항상 숫자가 담긴 array 자료가 들어와야 한다.
type Mytype = { color?: string; size: number; readonly position: number[] };
'Coding > typescript' 카테고리의 다른 글
[typescript] HTML 변경, 조작할 때 narrowing (0) | 2023.07.19 |
---|---|
[typescript] 함수와 object에 type alias 지정하기 (0) | 2023.07.18 |
[typescript] Literal types으로 만드는 const 변수 유사품 (0) | 2023.07.18 |
[typescript] 함수에 타입 지정하는법, void 타입, Narrowing (0) | 2023.07.17 |
[typescript] typescript 설치, 필수문법 (0) | 2023.07.16 |