기본 타입 추론
정적타입언어를 사용할때의 단점은 타입을 정할때의 시간과 노력이 소비된다는 점이다.
하지만, 타입스크립트는 타입을 추론할 수 있도록 도와주므로 개발자가 필요한 경우에만 타입을 정의할 수 있다.
let a = 123;
let b = 'abc';
a = 'abc'; // Error
b = 123; // Error
a에는 number타입이, b에는 string타입이 할당되었다. 그러므로 다음부터의 할당에서 a에서는 number타입만, b에서는 string타입만 선언되도록 해주는 것이 바로 타입 추론이다.
const c1 = 123;
const c2 = 'abc';
const는 let보다 더욱 타입이 엄격하게 적용된다.
let에서는 a에서는 number타입만, b에서는 string타입만 선언되도록 해주었지만, const에서는 c1에는 123만, c2에서는 'abc'만 할당되도록 추론해준다.
const arr = [1, 2, 3];
const [n1, n2, n3] = arr;
arr.push('a'); // Argument of type 'string' is not assignable to parameter of type 'number'
const obj = { numId: 1, stringId: '1' };
const { numId, stringId } = obj;
console.log(numId === stringId); // This comparison appears to be unintentional because the types 'number' and 'string' have no overlap
함수 타입 추론
const func1 = (a = 'a', b = 1) => {
return `${a} ${b};`;
};
func1(3, 6);
const v1: number = func1('a', 1);
const func2 = (value: number) => {
if (value < 10) {
return value;
} else {
return `${value} is big`;
}
};
'내일배움캠프[4기_Reac트랙] > TIL' 카테고리의 다른 글
내일배움캠프 React트랙 58일차 회고 (2022.01.20) (0) | 2023.01.23 |
---|---|
내일배움캠프 React트랙 57일차 회고 (2022.01.19) (0) | 2023.01.19 |
내일배움캠프 React트랙 55일차 회고 (2022.01.16) (0) | 2023.01.16 |
내일배움캠프 React트랙 54일차 회고 (2022.01.13) (0) | 2023.01.16 |
내일배움캠프 React트랙 53일차 회고 (2022.01.12) (0) | 2023.01.12 |