Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- react-native
- HTML
- ionic
- CSS
- Algorithm
- spartacodingclub
- ionic react
- 알고리즘
- 패스트캠퍼스
- 스파르타코딩클럽 후기
- next.js 빌드 오류
- 프로그래머스
- mongodb
- PYTHON
- 스파르타코딩클럽
- 프로그래밍기초
- K디지털크레딧
- 내일배움카드
- styled-components
- javascript
- 프로그래밍첫걸음시작하기
- React Native
- 항해99
- 부트캠프
- 바이트디그리
- ionic-react
- Firebase
- styled components
- typescript
- react
Archives
- Today
- Total
bravo my life!
[TIL] TypeScript의 불변성은 readonly와 tuple이. 본문
728x90
1. readonly로 읽기 전용 타입을 만들 수 있다.
readonly 속성을 지정하게 된다면 속성이 적용된 타입이 실수로 수정되는 것을 막아준다. 불변성이 생기게 되는 것이다.
type Name = string;
type Age = number;
type Player = {
readonly name: Name;
age?: Age;
};
const playerMaker = (name: string): Player => ({
name,
});
const pjm = playerMaker("pjm");
pjm.age = 12;
pjm.name = "lkjj"
배열에도 적용이 가능하다
const numbers: readonly number[] = [1, 2, 3, 4];
numbers.push(1)
array의 내장 함수인 push는 원본을 변경하는 기능을하고 불변성을 깨트리므로 사용이 불가능하지만 불변성을 지켜주는 filter, map등은 사용이 가능하다.
2. tuple로 배열의 형태를 만들 수 있다.
정해진 갯수와 정해진 타입의 요소를 가져야 하는 배열을 지정할 수 있는 기능.
const player: [string, number, boolean] = ["pjm", 36, false];
player[0] = 1
이렇게 선언된 배열은 접근을 할 때 다른 타입으로 수정을 하지 못하게 보호해준다.
0번째 배열은 문자열이 들어가야 하지만 숫자열로 수정을 하기 때문에 에러가 발행한다.
tuple은 readonly와 같이 사용할 수도 있다.
const player: readonly [string, number, boolean] = ["pjm", 36, false];
player[0] = 1;
우측 사진과 같이 아무것도 변경을 할 수 없다.
3. any로 TypeScript의 엄격함을 벗어날 수 있다.
TypeScript의 여러 보호 장치들에서 벗어나 자유도를 주고 싶을 때 사용한다.
const a: any[] = [1, 2, 3, 4];
const b: any = true;
a + b;
이런 것이 오류없이 허용된다.
'Study > TypeScript' 카테고리의 다른 글
[TIL ]TypeScript 프로젝트 생성하기. feat.VSCODE (0) | 2022.06.17 |
---|---|
[TIL] TypeScript를 좀 더 편하게 사용하게 하는 기능. (0) | 2022.06.16 |
[TIL] 사용도는 떨어지지만 중요한 타입들. unknown, void, never (0) | 2022.06.15 |
[TIL] TypeScript에서 타입을 선언해보자. (0) | 2022.06.13 |
[TIL] TypeScript 시작 (0) | 2022.06.12 |