런타임에 터진 버그"타입 정의 완벽하게 했는데 왜 undefined 에러가...?"type User = { name: string; age: number;};// 컴파일은 통과하지만...const data: User = JSON.parse(response);// response가 { name: 123, age: "스물" }이면? API 응답이 예상과 달랐다. TypeScript는 아무 경고 없이 통과시켰다.TypeScript는 컴파일 타임에만 동작한다. API 응답, 폼 입력, 외부 데이터는 런타임에 들어오기 때문에 타입을 아무리 정교하게 정의해도 런타임에는 무력하다.결국 if (!data.name || typeof data.age !== 'number') 같은 검증 코드를 직접 작성하게 되는데, 이..
any 타입은 타입스크립트의 타입 체킹 기능을 비활성화하기 때문에, 가능한 한 좁은 범위에서만 사용해야 합니다. - 위의 내용은 이 본문 전체를 관통하는 이야기이다. 글쓴이는 any를 써야 한다면 최대한 좁게 만들라는 이야기를 계속해서 반복한다. 다음은 any 타입을 사용하는 두 가지 방법이다: // 나쁜 예 function f1() { const x: any = expressionReturningFoo(); // bad processBar(x); }; // 좋은 예 function f2() { const x = expressionReturningFoo(); processBar(x as any); // good }; | processBar 함수의 매개변수에서만 any 타입을 사용하는 것이 좋다. 이는 다..