
type alias(변수) 사용 전
let 동물 :string | number | undefined;
1. 타입이 복잡하거나
2. 나중에 또 재활용할 타입이라면
type alias(변수) 사용 후
type Animal = string | number | undefined;
let 동물 :Animal;
1. type 키워드를 사용.
2. 변수명은 첫 문자 대문자 관례
이렇게 사용하면 타입도 변수처럼 저장하여 사용할 수 있다.
특히 object 타입에 사용한다면?
type 사람 = {
name : string,
age : number,
}
let teacher :사람 = { name : 'john', age : 20 }
object 타입의 경우 선언이 길고 복잡한 편이다.
-> 이와 같이 type변수를 사용하면 편리하게 선언할 수 있다.
const 변수 속성
const 출생지역 = { region: 'seoul'}
출생지역.region = 'busan'
const의 경우 상수라고 불리고 값을 외부에서 변경하지 못하게 막는 키워드이다.
하지만, const 변수의 object 속성을 제어하려고 시도하면 변경이 가능하다.
이러한 단점을 엄격한 타입스크립트 관점에서 볼 때는 보완할 필요가 있다.
object readonly 속성
type Lastname = {
readonly name : string
}
const 성씨 : Lastname = {
name : 'hong'
}
성씨.name = 'kim' //읽기전용이므로 에러발생
type 변수안에 readonly라는 키워드를 사용하면 = 오로지 읽기만 하겠다.라는 의미를 주어서
외부에서 값을 변경하려 시도하면 에러가 발생한다.
이 방법을 통해 const object 값도 변경을 막을 수 있다.
하지만, ts -> js변환과정에서는 js에서 에러를 발생하지 않으므로 ts컴파일에서만 확인할 수 있다.
type 변수 합치기
type Name = string;
type Age = number;
type Person = Name | Age;
union타입 방식으로 type변수를 합칠 수도 있다.
type PositionX = {x: number};
type PositionY = {y: number};
type NewType = PositionX & PositionY
let position: NewType = {x:10, y:20}
console.log(position)
물론 &연산자를 이용하여도 합칠 수 있다.
type 변수는 재정의 불가능
type Name = string; // 에러발생
type Name = number; // 에러발생
타입이 엄격하므로 재정의마저 에러가 발생한다.
추후 배울 interface 키워드를 사용하면 재정의가 가능하다.
타입을 변수에 담아서 쓸 생각은 해보지 못했는데, 정말 유용하게 사용할 것 같다.
특히 오브젝트형이 복잡해서 보기 좋지 않았는데, 앞으로는 타입변수를 애용할 것!!
'TypeScript' 카테고리의 다른 글
함수 및 methods에 type alias 사용법 (0) | 2023.07.03 |
---|---|
Literal Types (0) | 2023.07.03 |
타입 확정하기 (Narrowing & Assertion) (0) | 2023.07.02 |
함수에 타입 지정하는 법 (0) | 2023.07.02 |
타입을 미리 정하기 애매할 때 (union, any, unknown) (0) | 2023.07.02 |

type alias(변수) 사용 전
let 동물 :string | number | undefined;
1. 타입이 복잡하거나
2. 나중에 또 재활용할 타입이라면
type alias(변수) 사용 후
type Animal = string | number | undefined;
let 동물 :Animal;
1. type 키워드를 사용.
2. 변수명은 첫 문자 대문자 관례
이렇게 사용하면 타입도 변수처럼 저장하여 사용할 수 있다.
특히 object 타입에 사용한다면?
type 사람 = {
name : string,
age : number,
}
let teacher :사람 = { name : 'john', age : 20 }
object 타입의 경우 선언이 길고 복잡한 편이다.
-> 이와 같이 type변수를 사용하면 편리하게 선언할 수 있다.
const 변수 속성
const 출생지역 = { region: 'seoul'}
출생지역.region = 'busan'
const의 경우 상수라고 불리고 값을 외부에서 변경하지 못하게 막는 키워드이다.
하지만, const 변수의 object 속성을 제어하려고 시도하면 변경이 가능하다.
이러한 단점을 엄격한 타입스크립트 관점에서 볼 때는 보완할 필요가 있다.
object readonly 속성
type Lastname = {
readonly name : string
}
const 성씨 : Lastname = {
name : 'hong'
}
성씨.name = 'kim' //읽기전용이므로 에러발생
type 변수안에 readonly라는 키워드를 사용하면 = 오로지 읽기만 하겠다.라는 의미를 주어서
외부에서 값을 변경하려 시도하면 에러가 발생한다.
이 방법을 통해 const object 값도 변경을 막을 수 있다.
하지만, ts -> js변환과정에서는 js에서 에러를 발생하지 않으므로 ts컴파일에서만 확인할 수 있다.
type 변수 합치기
type Name = string;
type Age = number;
type Person = Name | Age;
union타입 방식으로 type변수를 합칠 수도 있다.
type PositionX = {x: number};
type PositionY = {y: number};
type NewType = PositionX & PositionY
let position: NewType = {x:10, y:20}
console.log(position)
물론 &연산자를 이용하여도 합칠 수 있다.
type 변수는 재정의 불가능
type Name = string; // 에러발생
type Name = number; // 에러발생
타입이 엄격하므로 재정의마저 에러가 발생한다.
추후 배울 interface 키워드를 사용하면 재정의가 가능하다.
타입을 변수에 담아서 쓸 생각은 해보지 못했는데, 정말 유용하게 사용할 것 같다.
특히 오브젝트형이 복잡해서 보기 좋지 않았는데, 앞으로는 타입변수를 애용할 것!!
'TypeScript' 카테고리의 다른 글
함수 및 methods에 type alias 사용법 (0) | 2023.07.03 |
---|---|
Literal Types (0) | 2023.07.03 |
타입 확정하기 (Narrowing & Assertion) (0) | 2023.07.02 |
함수에 타입 지정하는 법 (0) | 2023.07.02 |
타입을 미리 정하기 애매할 때 (union, any, unknown) (0) | 2023.07.02 |