24장 일관성 있는 별칭 사용하기
•
새로운 변수를 통한 별칭은 타입 좁히기에 방해됩니다.
function isPoint(point: Point){
const coin = point.coin;
if(point.coin){
point.coin // Coin
coin // Coin | undefined
}
}
JavaScript
복사
•
그러니 비구조화 문법을 애용합시다. 단 값은 유지되지 않을 수 있습니다.
function isPoint(point: Point){
const { coin } = point;
if(coin){
setting(point); // point.coin 값 변화
// coin과 point.coin은 다른값을 참조
}
}
JavaScript
복사
25장 비동기 코드에는 콜백 대신 async 함수 사용하기
•
콜백보단 Promise를 그보단 async, await를 사용세요.
26장 타입 추론에 문맥이 어떻게 사용되는지 이해하기
•
변수를 별도로 선언 시 오류 발생 시 타입 선언을 추가해줘야합니다.
type Language = "JavaScript" | "TypeScript";
function setLanguage(lang: Language){};
setLanguage('JavaScript');
let language = "JavaScript";
setLanguage(language); // 에러 발생
// 1. const 로 변경
// 2. language: Language 추가
JavaScript
복사
•
필요하다면 튜플, 객체, 콜백 시에도 필요하다면 타입단언이나 as const를 사용해야합니다.
type GoveredLanguage = {language: Language, organiztion: string};
function complain(ts: GoveredLanguage){};
complain({language: "TypeScript", organization: "scroll"}); // 정상 동작
const ts = {
language: "TypeScript",
organization: "scroll"
}
complain(ts) // 에러 발생
// 1. ts: GoveredLanguage
// 2. ts = { language: "TypeScript" as const, ... }
JavaScript
복사
27. 함수형 기법과 라이브러리로 타입 흐름 유지하기
•
내장 함수형 기법과 lodash와 같은 라이브러리는 타입스크립트의 사용을 좀 더 쉽게만들어줍니다.