타입스크립트의 등장 배경과 필요성을 자바스크립트의 한계와 엮어서 기억하자.
x
와 y
를 받아서 x+y
를 반환하는 함수가 있다고 했을때, 자바스크립트는 x=5
와 y= "1"
을 받게 되면 6
이 아닌 51
을 출력한다. 이렇게 타입의 명시성이 부족할 경우, 예상치 못한 결과를 초래하게 되고 이 문제점을 해결하기 위해 Typescript가 등장하게 된 것이다.배열 타입 작성 법: string[]
혹은, Array<string>
객체 리터럴은 명시한 프로퍼티만 지정할 수 있다. 추가 작성할 경우 에러발생.
any
와 unknown
은 되도록이면 사용하지 않는 것이 좋다.
타입 추론 기능을 활용하지 않는다고 가정했을 때, 리턴 값이 없는 함수는 꼭 : void
작성해 주자!
TypeScript는 JavaScript와 달리 매개변수의 개수에 맞춰 전달인자를 전달해야 한다.
전달인자를 전달하지 않거나, undefined
를 전달했을 때 할당될 매개변수의 값을 정해놓을 수도 있다. (JS의 default parameter같은!)
혹은 선택적 매개변수를 원한다면 매개변수의 이름 끝에 ?
를 붙임으로써 해결가능
유니온 타입은 다양한 타입의 값을 처리해야 하는 경우 유용
any
타입을 사용하면 타입을 추론할 수 없어, 자동완성 기능을 사용하기가 어렵다. 그러니까 되도록이면 유니온 타입 쓰자.
in
연산자는 객체의 프로퍼티 이름과 함께 사용되며, 해당 프로퍼티가 객체 내에 존재하는지 여부를 검사한다. 이는 타입 가드 작성 시 사용된다.
프로젝트 루트 디렉토리에 작성한 tsconfig.json 설정 파일의 세부 내용은 아래와 같다.
//tsconfig.json
//compilerOptions 내의 속성은 자유롭게 커스텀 할 수 있다.
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"sourceMap": true,
"outDir": "./dist"
},
"include": [
"src/**/*"
]
}
드디어 처음 배워 본 타입 스크립트...! 아직 기초를 배우는 중이라 크게 어렵지는 않은데... 막상 잘 활용할 수 있을 정도로 익히려면 어색하더라도 계속 많이 쓰는 버릇을 들여야 할 거 같다...!