-
타입스크립트 프로그래밍-3프론트엔드/리엑트 2023. 2. 17. 15:17728x90
타입의 관하여
타입(type): 값과 이 값으로 할 수 있는 일의 집합
ex1)
Boolean 타입의 경우 모든 불(참과 거짓 중 하나)과 불에 수행할 수 있는 모든 연산의 집합.
=> 연산(||, &&, ! 등)
ex2)
number 타입은 모든 숫자와 숫자에 적용할 수 있는 모든 연산, 숫자에 호출할 수 있는 모든 메서드의 집합.
=> 연산(+,-,*,/,%,||,&&,? 등) , 메서드(.toFixed, .toPrecision, .toString 등)
ex3)
string타입은 모든 문자열과 문자열에 수행할 수 있는 모든 연산 문자열에 호출할 수 있는 모든 메서드의 집합.
=> 연산(+,||,&&,등) , 메서드(.concat, .toUpperCase 등)
function plus(n) {
return n+n
}
=> plus(2) // 4값이 출력
=> plus('p') //Nan으로 출력
매개변수값의 타입을 지정해주자.
function plus(n:number) {
return n+n
}
=> plus(2) // 4값이 출력
=> plus('p') //에러 Ts2345: ' "p" ' 라는 타입의 인수는 'number' 타입의 매개변수에 할당할 수 없음 에러가 뜬다.
any란?
타입스크립트를 배우고 사용하게되면서 any를 많이 접할수있었다.
개발자와 타입스크립트 모두 타입을 알 수 없는 상황에서는 기본 타입인 any로 가정한다.
하지만 가급적 사용을 권장하지않는다.
그 이유는 타입스크립트를 사용하는이유는 깐깐하게, 까다롭게 오류를 잡아주기 위해서인데,
any를 사용하면 무슨 작업이든 다 할 수 있기때문에 자바스크립트와 다를 바 없고
타입 검사기가 더이상 작동하지않게된다.
그래서, any 대신 unknown을 사용한다.
정제를 통해 ㅅ용하기 전까지는 타입스크립트가 unknown 타입의 값을 사용할 수 없게 강제한다.
ex)
let a : unknown = 30 // a = unknown
let b = a ===123 // boolean
let c = a + 10 // 에러.. a객체의 타입이 unknown임.
정제과정은 typeof 와 instanceof 를 사용하여 정제해준다.
if ( typeif a === 'number') {
let d = a +10 // number
}
boolean
타입리터럴(type literal)
- 오직 하나의 값을 나타내는 타입
- 모든 곳에서 일어날 수 있는 실수를 방지해 안전성을 추가로 확보해주는 강력한 언어 기능
- 타입스크립트를 독특하게 만들어주는 기능
1. 변수를 명시적으로 타입리터럴로 설정 한 경우
ex) let d : boolean = true // boolean
2. const를 사용하여 타입스크립트가 자동으로 변수의 타입을 리터럴로 추론하게 한 경우
ex) const c = true // true
const를 사용했으므로 타입스크립트는 변수의 값이 절대 변하지 않는다고
알고 해당 변수가 가질 수 있는 가장 좁은 타입으로 추론하게 된다.
그러므로, boolean이 아닌, 가장 좁은 타입 ture로 추론해준다.
※ let 이냐 const 냐에 따라 타입스크립트가 추론하는 타입이 달라진다.
출처: 타입스크립트 프로그래밍 책.
728x90'프론트엔드 > 리엑트' 카테고리의 다른 글
usequery란(querykey, queryfunction)? (0) 2023.03.03 타입스크립트 프로그래밍 -4 (0) 2023.02.20 타입스크립트 프로그래밍-2 (0) 2023.02.14 타입스크립트 프로그래밍-1 (0) 2023.02.14 리엑트-렌더링이란? (0) 2023.02.09