일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CSS 스타일
- 티스토리챌린지
- opacity
- display와 visibility
- placeholder
- flex box
- 코드스테이츠
- 객체지향프로그래밍
- 프로그래머스
- HTML5문서
- github
- section태그와 article태그의 차이점
- block 박스
- 깃허브
- CSS 박스모델
- HTML요소
- 템플릿 문자열
- Code States
- GIT
- 스코프
- BOM
- Scope
- history API
- 오블완
- CSS Object Model
- javascript
- Til
- overflow: hidden
- 시맨틱
- 외계행성의 나이
- Today
- Total
해말그미의 코딩공부
타입스크립트 기초2 본문
타입을 미리 정하기 애매할 때
union type
any type
unknown type
🌹 union type
let 회원 :number | string = 666;
타입 2개 이상 합친 새로운 타입만들기
=> 666 처럼 할당을 하면 회원이라는 변수는 number로 확정이 된다.
문자나 숫가가 들어갈 수 있는 array나 object를 만들려면? =>
let 회원들 :(number | string) [ ] = [1,'2',3];
이렇게 하면된다.
let 회원들 :number | string [ ]
소괄호를 안쳐주면 123이라는 숫자만 또는 ['문자1','문자2'] 같이 올 수 있는 타입이 된다.
object를 만들려면?
let 오브젝트 :{ a : string | number } = { a : 123 }
🌹 any type
위의 union type 이 귀찮다! 그럼 any를 쓰면 된다.
처럼 어떤게 와도 된다.
이 타입은 모든 자료형 허용해주기 때문에 타입스크립트 쓰는 의미가 없어진다. => 타입관련 버그 잡아주지 못하기 때문에
🌹 unknown type
any랑 비슷한데 좀 더 안전하다.
이렇게 했을 경우 이름에 {}가 들어오면서 에러가 뜬다.
하지만 any 타입은 다른 타입에 들어가는 것도 허락해준다. 그래서 unknown 이 더 안전하다.
unknown은 number타입이 아니기 때문에 계산이 안된다.
타입스크립트는 엄격하기 때문에 수학연산도 타입이 맞아야 한다.
자바스크립트에서 'yun' + 1은 yun1 처럼 허용이 됐다.
위에서는 타입이 맞는데 왜 +1이 안될까??
타입스크립트는 엄격한 것을 좋아한다.
string 타입 +1(허용됨)
number 타입 +1(허용됨)
string | number 타입 +1(허용됨) =>union type은 새로운 타입을 만들어내는 것이라서 안된다.
타입지정 연습하기
🌹 함수에 타입 지정하는 법 & void 타입