변수 만들 때 타입정하기 (타입 쉴드씌우기)
타입스크립트는 변수만들 때 변수의 타입을 지정가능합니다.
let 이름: string = 'kim'
변수명:타입 이렇게 정하면 됩니다.
방금 여러분은 변수에 실드를 씌운 것입니다.
이제 이름이라는 변수는 string 타입이 되며
갑자기 숫자 이런걸 할당하려고 하면 실드로 튕겨냅니다 (에러가 나게 됩니다.)
진짜 시험삼아 숫자 할당해보십시오. 타입 실드가 바로 튕겨내줄걸요
(참고) name이라는 변수명은 전역변수로 사용불가능합니다. 비슷한거 여러개 있음.
타입은 여러가지가 있습니다.
자주 쓰는 primitive types 들을 소개하자면
string, number, boolean 이런게 있습니다.
let 이름 :string = 'kim';
let 나이 :number = 20;
let 결혼했니 :boolean = false;
추가로 null, undefined 이런 것도 있습니다.
근데 굳이 사용하진 않습니다.
array 또는 object 자료 안에도 타입 지정가능
여러 자료를 한 곳에 저장하고 싶을 때 array 또는 object 자료형을 사용합니다.
근데 그 안에 들어갈 자료들도 전부 타입지정이 가능합니다.
let 회원들 :string[] = ['kim', 'park']
array 자료안에 들어갈 타입은 타입명[] 이렇게 지정하면 됩니다.
그럼 array 자료에 각각 string이라는 타입 실드를 장착한 겁니다.
이제 숫자로 수정하려면 실드가 튕겨냅니다. 에러날걸요?
Q. array 안에 string, number 이런게 동시에 들어갈 땐 타입지정 어떻게 하냐고요?
그것은 변수명: (string | number)[] 이렇게 하면 되는데 나중에 다뤄보도록 합시다.
let 내정보 : { age : number } = { age : 20 }
object 자료안에 들어갈 타입은 내가 만들 object와 똑같은 모습으로 지정하면 됩니다.
뭔가 이상해보이지만 변수명 오른쪽에 오는 것들은 전부 타입지정 문법입니다.
외우면 이상하지 않습니다.
아무튼 이러면 age 속성에 number 실드를 씌워준 것입니다.
let 이름 :string = 'kim';
이름 = 30;
타입을 잘 지정해준다면 타입이 실수로 변경될 때 이런 경고성 에러가 납니다.
Type 'number' is not assignable to type 'string'.(2322)
엄격하게 타입을 지켜서 코드짜는걸 도와주는 에러니 앞으로 반겨주면 됩니다.
(물론 이 에러는 ts에서만 나는 에러고 실제 변환된 .js 파일 가보시면 별일 없습니다.)
하지만 오늘의 프로 팁은
그렇다고 모든 변수에 타입지정하러 다니면 초보티가 납니다.
숙련자들은 타입을 귀찮게 굳이 적지 않습니다.
왜냐면 변수 생성시 타입스크립트가 타입을 자동으로 부여해주니까요.
let 이름 = 'kim';
let 나이 = 20;
이렇게만 써도 자동으로 이름변수는 string, 나이 변수는 number를 가지고 있습니다.
(변수명에 마우스 올려보면 바로바로 확인가능)
array, object 만들 때도 자동으로 알아서 됩니다. 굳이 복잡하게 타입 명시할 필요 없음
<출처 : 코딩애플 - 빠르게 마스터하는 타입스크립트>
'TypeScript' 카테고리의 다른 글
[TS]Types로 만드는 const 변수 유사품 (0) | 2022.11.07 |
---|---|
[TS]타입이 너무 길면 Type Aliases, readonly, type extend 등 (0) | 2022.11.07 |
[TS]타입 확정하기 Narrowing & Assertion (0) | 2022.10.21 |
[TS]함수에 타입 지정하는 법 & void 타입 (0) | 2022.10.21 |
[TS]타입을 미리 정하기 애매할 때(union type, any, unknown) (0) | 2022.10.21 |