$ npm install -g typescript
$ tsc --version
$ tsc ./src/index.ts
npx tsc
명령으로 실행할 수 있다.
$ npm init -y
$ npm install -D typescript parcel-bundler
tsconfig.json
을 생성한 후, 옵션을 추가한다.main.ts
파일을 작성한다.index.html
을 생성하여 script 태그를 main.ts
파일에 연결한다.$ npx parcel index.html
:
기호 뒤에 타입을 지정할 수 있다.function hello(a: TYPE_A, b: TYPE_B): TYPE_RETURN {
return a + b;
}
let hello: TYPE_HELLO = hello(1, 2);
예시를 살펴보면 다음과 같다.
function add(a: number, b: number) {
return a + b;
}
const sum: number = add(1, 2);
console.log(sum); // 3
매개변수인 a,b는 number
타입이여야 한다고 지정해주었으므로
add 함수를 호출할 때 인자로 숫자를 넘겨줘야 한다.
또한 리턴 값 또한 a+b이므로 number
타입으로 추론된다.
만약 타입 에러가 발생한다면, 컴파일 전 단계에서
(코드 작성 시점에서) 에러가 발생하게 된다.
이때 나오는 에러 코드를 검색하면 에러 코드에 대한 정보를 쉽게 알 수 있다.
예> TS2322
문자열만 가지는 배열의 경우에는 아래와 같이 선언할 수 있다.
let fruits: string[] = ['Apple', 'Banana', 'Mango'];
// 또는
let fruits: Array<string> = ['Apple', 'Banana', 'Mango'];
숫자만 가지는 배열의 경우에는 아래와 같이 선언할 수 있다.
let oneToSeven: number[] = [1, 2, 3, 4, 5, 6, 7];
// 또는
let oneToSeven: Array<number> = [1, 2, 3, 4, 5, 6, 7];
type[]
과 같이 작성하거나
Array<type>
과 같이 작성하면 된다.
만약 여러개의 다중 타입을 갖는 배열의 경우 |
연산자를 이용하면 된다.
let arr: (string | number)[] = ['Apple', 1, 2];
// 또는
let arr: Array<string | number> = ['Apple', 1, 2];
interface IUser {
name: string,
age: number,
isValid: boolean
}
-readonly
키워드 사용.
ReadOnlyArray
라는 타입이 존재함.let tuple: [sting, number];
tuple = ['a', 1, 2]; // Error
tuple은 정해진 길이 배열을 표현하지만, 할당에 국한된다.
-> push
나 splice
를 통해 값을 넣는 행위는 막을 수 X.
enum Week {
Sun,
Mon,
Tue,
Wed,
Thu,
Fri,
Sat
}
console.log(Week.Mon); // 1
수동으로 값 변경시 변경한 부분부터 다시 1씩 증가함.
typeof
연산자가 object로 반환하는 모든 타입.interface
나 type
의 사용을 권장함.interface IUser {
name: string,
age: number
}
let userA: IUser = {
name: 'HEROPY',
age: 123
};
function hello(name: string): void {
console.log(`Hello ${name}`);
}