HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤩
개발
/
NodeJs
NodeJs
/
TypeScript
TypeScript
/
Basics

Basics

Javascript의 단점정적 타입 체크Non-Exception FailuresTypes for Toolingtsc, TypeScript compilerStrictnessd.ts

Javascript의 단점

function fn(x) { return x.flip(); }
  • 해당 함수에서 x가 flip() 이라는 메서드를 가지고 있어야 하는데 자바스크립트는 런타임 중에 이를 체크할 수 없음
  • Javascript에서 fn이 하는 일을 알아보려면 실제로 얘를 실행해보는 것 밖에는 방법이 없음
  • 즉, 실행해보지 않고는 이해하기 힘들고, 타입 체크 시스템이 너무 구축되어 있지 않다

정적 타입 체크

const message = "hello!"; message(); This expression is not callable. Type 'String' has no call signatures.

Non-Exception Failures

  • 객체에 없는 프로퍼티에 접근했을 때 예외가 발생하지 않고 undefined가 반환됨
const user = { name: "Daniel", age: 26, }; user.location; // returns undefined
const user = { name: "Daniel", age: 26, }; user.location; Property 'location' does not exist on type '{ name: string; age: number; }'.
typescript에서는 에러를 내뿜어줌

Types for Tooling

  • 타입정보를 가지고 있으니 사용할 수 있는 프로퍼티를 추천해 줄 수 있음
notion image

tsc, TypeScript compiler

  • tsc helloworld.ts 를 실행하면 해당 ts 파일을 js 파일로 컴파일 해줌
  • tsc에서 에러가 있는 코드를 컴파일 했을 때, 에러를 내뿜긴 하지만 js 파일을 생성해주기는 함. 그 이유는 이전에 javascript 코드가 돌아가는 코드인데, typescript 에서 컴파일 해서 안돌아가는게 이상하기 때문에 type checking만 해주고 js 파일을 만들어내기는 함
  • tsc --noEmitOnError hello.ts noEmitOnError 옵션을 추가해주면 에러가 있으면 js 파일 생성안함

Strictness

  • strictness 설정은 옵션을 통해서 설정이 가능함. 그래서 더 엄격하게 체크할 수 있다.
  • strict : true 를 하면 모든 옵션들 다 활성화 시킬 수 있음(기본 설정임). 개별적으로 설정도 가능함
    • noImplicitAny : 해당 옵션을 키면 변수가 암묵적으로 any로 추론되는 애들에 대해서 에러를 내뿜음
    • strictnullChecks : null와 undefiend에 대한 handling을 좀 더 명시적으로 하게 해줌
 

d.ts

  • d.ts파일은 기존 JavaScript로 만들어진 서드파티 모듈들을 TypeScript 환경에서도 사용할 수 있도록 따로 타입만 정리해서 넣어둔 파일