1) readonly
readonly는 말 그대로 읽기만 가능하게 해준다.
readonly 속성을 타입에 추가할 수 있다.
우리가 name을 수정하려고 한다면 Typescript가 그것을 막을 것이다.
왜냐하면 typescript에게 이 속성은 readonly라고 말했기 때문이다.
이런식으로 새로운 name을 할당 할 수 없다고 알려준다.
이렇게 배열을 만들었을때 원본 배열을 변환시키는 push, unshift 등등의 함수는 사용할 수 없다
원본 배열을 바꾸지 않은 함수만 사용가능하다.
자바스크립트는 이런 readonly같은 기능이 없다.
2) tuple
tuple은 JS에서는 지원하지 않는 데이터 타입이지만, TS에서는 배열 타입을 보다 특수한 형태로 사용할 수 있도록 지원하는 기능이다.
- tuple에 명시적으로 지정된 형식에 따라 아이템 순서를 설정 해줘야한다.
- 추가되는 아이템 또한 tuple에 명시된 타입만 사용 가능하다.
이렇게 순서가 다르면 적용되지 않는다.
그럼 이런것은 언제사용하느냐?
때때로 api가 이런식으로 array를 줄때도 있어서 그럴때 사용하면 유용하다.
하지만 단점도 존재한다.
바로 push 메서드를 사용하면 문제없이 배열의 길이가 늘어난다는 것이다.
따라서 tuple를 사용할 때는 push를 조심해야 한다.
그럼에도 불구하고 에러없이 push를 사용하려면 처음 정의한 타입만 push가 가능하다
예를들어 player는 string, number, boolean 이 3가지 타입을 정의하였으므로
이 3가지 타입만 push가 가능하다.
3) any
any 사용은 추천하지 않는다.
any를 사용하는 것은 자바스크립트를 사용하는 것과 마찬가지이다.
const a: any[] = [1, 2, 3, 4];
const b: any = true;
console.log(a + b); //1,2,3,4true
이런식으로 자바스크립트처럼 에러를 막아주지 않는다.
any는 진짜 필요한 곳에서만 쓰기를 추천한다.
any는 타입스크립트의 보호장치들을 완전히 비활성화 시키기 때문이다.
'Typescript > 개념' 카테고리의 다른 글
[Typescript] call signatures // overloading (0) | 2022.09.22 |
---|---|
[Typescript] Type part 3 ( unknown / void / never ) (1) | 2022.09.21 |
[Typescript] 타입 - 1 (0) | 2022.09.20 |
[Typescript] Typescrip를 사용하는 방법 (1) 기초편 (1) | 2022.09.19 |
[Typescript] Typescript는 왜 만들어 졌을까? (0) | 2022.09.19 |