오늘은 타입스크립트를 설치하고 셋팅해보며 필수문법에 대해 짧게 살펴보겠습니다.
mkdir ts
cd ts
code .
npm install -g typescript
tsconfig.json 파일을 만들고, 아래와 같이 코드를 추가합니다. ‘target’은 타입스크립트 파일을 어떤 버전의 자바스크립트로 바꿔줄지 정하는 부분이고, ‘module’은 자바스크립트 파일간 import 문법을 구현할 때 어떤 문법을 쓸지 정하는 곳입니다. 그래서 어느정도 IE 호환성을 원한다면 es5, commonjs를 선택해야 합니다.
//tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "CommonJS"
}
}
+) 추가로 noImplicitAny 는 any 라는 타입이 의도치않게 발생할 경우 에러를 띄워주는 설정이고, strictNullCheck 는 null, undefined 타입에 이상한 조작하면 에러를 띄우는 설정입니다.
// tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noImplicitAny": true,
"strictNullChecks": true
}
}
tsc -w
let nickname: string = "kim";
let nickname: string[] = ["kim", "park"];
let nickname: { nickname?: string } = { nickname: "kim" };
let nickname: string[] | number = 123;
타입은 변수에 담아서 쓸 수 있습니다. Type alias 라고 하는데, 보통 대문자로 시작해야 일반 변수와 구분할 수 있습니다.
type Mytype = string[] | number;
let nickname: Mytype = 123;
const plus = (x: number): number => x + 2;
type Member = [number, boolean];
let john: Member = [1, true];
object 에 타입 지정해야 할 속성이 너무 많으면 다음과 같이 처리할 수도 있습니다. [key:string] 이 부분이 모든 object 속성 이라는 뜻을 가지고 있습니다.
type Member = { [key: string]: string };
let john: Member = { name: "kim", age: "123" };
class User {
name: string;
constructor(name: string) {
this.name = name;
}
}
지금까지, 타입스크립트를 실행해보고 짧은 문법을 살펴보았습니다. 번외로 https://www.typescriptlang.org/tsconfig 에 들어가보면 tsconfig에 들어갈 기타 항목들을 확인할 수 있습니다.