javascript는 Dynamic typing 기능이 있기 때문에 타입을 알아서 지정해주는 편리한 기능이지만 프로젝트 규모가 커지면 커질수록 어떤 타입의 값을 들어오는지 알기 어렵기 때문에 타입과 관련된 버그들이 발생하게 된다. 그래서 javascript 문법에 type을 지정하여 보다 명확한 값을 설정 할 수 있도록 도와주는 것을 typescript라 한다.
npm install --save typescript @types/node @types/react @types/react-dom @types/jest
npx create-react-app my-app --template typescript
let 이름 :string = 'kim' // 변수명 뒤에 :와 type을 적어준다. (number, string, boolean 등)
let 이름 :string[] = ['kim', ['park']] // array 타입 지정법
let 이름 :{age : number} = {age : number} // object 타입 지정법
let 이름 = 'kim' // type을 지정안했을 땐 에러메시지를 띄워준다.
let 이름 :string = 3 // type과 다른 type의 값이 들어오면 에러메시지를 띄워준다.
let 이름 :string | number = 'kim'
type NameType = 'kim' | 'park' ; //'kim'이나 'park'이라는 값만 들어올 수 있다.
let 이름 :NameType = 'kim'
function 함수(x :number | string) {
return x * 2
} // 에러메시지 띄워줌
function 함수(x : number | string) {
if(typeof x === 'number'){
return x * 2
}
} // 정상
type Member = [number, boolean];
let semin :Member = [100, false]
// 대괄호[] 안에 들어올 자료의 type을 차례로 작성
type Member = {
name :string,
age :number,
phoneNumber? :number,
address? :number,
}
type MyObject = {
[key :string] : number,
}
let squareBox = {
width: 40,
height: 40,
weight : 120,
}