타입스크립트는 자바스크립트의 타입 부분을 업그레이드해서 사용하고 싶을때 설치하여 일종의 자바스크립트의 대용품으로 사용한다.
자바스크립트는 Dynamic typing을 지원하는 언어로 작은 개발 시 편리했지만 큰 프로젝트 진행시 단점이되어 type 관련되어 버그들이 많이 발생한다. 타입스크립트를 사용하면 에러메시지도 더 정확해진다.
npm install -g typescript
tsconfig.json
타입스크립트를 자바스크립트로 컴파일 시 옵션 설정이 가능하다.target
은 자바스크립트 버전 지정 가능 하다.(최신버전 esnext
)module
은 자바스크립트 문법 버전 지정 가능 하다. {
"compilerOptions":{
"target": "es5",
"module" : "commonjs",
}
}
tsc -w
입력하면 자동으로 변환이되며 파일 사용시 변환된 자바스크립트 파일을 사용하면 된다. tsc -w
let name :string = "you";
: 이 변수에는 string(문자) type 만 들어올 수 있다.
let name :string[] = ['you', 'me'];
: 이 변수에는 string 담긴 array 만 들어올 수 있다.
let name :{ name? : string } = { name : 'su' };
: name?
name이라는 속성이 들어올 수도 있고 아닐수도 있다.
let name : string | number = 123;
let name : string[] | number = 123;
type Name = string | number;
let name : Name = 123;
function 함수(x){
return x * 2
}
: 파라미터에 타입을 지정하고 싶다면 함수(x :number)
: return 값 타입 지정하고 싶다면 function 함수(x:number) :number
: (x :number)
이 함수는 파라미터로 number, return 값으로 number이다.
type Member = [number, boolean];
let john:Member = []
: 무조건 첫번째 자리는 number, 둘째는 boolean이다.
type Member = {
name : string
}
let john : Member = { name : 'you' }
type Member = {
[key :string] : string,
}
let john : Member = { name : 'you', age : '123' }
: key :string
모든 object 속성
: [key :string] : string,
글자로 된 모든 object 속성의 타입은 string
class User {
name :string;
constructor(name :string){
this.name = name;
}
}