[TypeScript] 기본타입 및 js변환 등
변수의 타입
- number
- string
- boolean
- null
- undefined
- any
any는 이것도 저것도 아닌 타입.
let a: number = 3;
a의 타입을 number로 지정한 후 숫자 3을 할당.
let b: string = "true";
b의 타입을 string로 지정한 후 문자 “true”를 할당.
let c: any = 4;
c = "string";
any 타입은 다른 타입을 변수에 할당해도 이상은 없음.
하지만 타입스크립트를 사용하는 목적이 퇴색되니 되도록이면 사용하지 말자.
let d: number | string = "string";
d = 123;
타입을 중복해서 지정가능.
let e: string[] = ["apple", "banana"];
let e: Array<string> = ["apple", "banana"];
두 가지 표현방법이 있다.
배열 안의 요소는 문자타입만 가능.
function addNumber(a: number, b: number): number {
return a + b;
}
addNumber(3, 4); // 7
a와 b는 숫자타입이며 결과 또한 숫자타입이다.
object
기본형태
let user: { name: string } = { name: "Bob" };
Tuple
let f: [string, number] = ["z", 1];
튜플이라고 하며 배열 안의 여러 요소에 타입을 따로 지정해준다.
f = [1, "z"];
인 경우는 안됨.
void
함수가 아무것도 반환하지 않을 때 주로 사용.
function sayHello(): void {
console.log("hello");
}
never
함수가 항상 에러를 반환하거나 무한루프일 때 주로 사용.
function showErr():never{
throw new Error()
}
function loop():never{
while(true){
// ...
}
}
enum
비슷한 값들의 모음.
enum Os {
Window, // Os.Window = 0
Ios, // Os.Ios = 1
Android, // // Os.Android = 2
}
enum Os {
Window = 3, // Os.Window = 3
Ios, // Os.Ios = 4
Android, // // Os.Android = 5
}
enum Os {
Window = 3, // Os.Window = 3
Ios, // Os.Ios = 10
Android // // Os.Android = 11
}
자동으로 숫자가 할당된다.
console.log(Os[10]); // "Ios"
console.log(Os["Ios"]); // 10
양방향 래핑이 되어있기 때문에 위와 같은 것이 가능하며, 숫자일 때만 가능하다.
let myOs: Os;
myOs = Os.Window;
myOs에는 Os에 있는 값만 입력이 가능해진다.
js변환
node index.js 를 바로 사용하지 않고 tsc index.ts => node index.js.
브라우저는 js만 이해가능 tsc를 통해서 ts를 js로 변환을 해야한다.
터미널에서 tsc -w을 입력해두면 자동으로 변환해준다.
tsconfig.json
ts에서 js로 변환시 설정값 설정.
기본
{
"compilerOptions": {
"outDir": "dist", //컴파일 후 지정 파일에 저장
"target": "es6",
"module": "commonjs",
"lib": ["es6"], // 라이브러리 지정
"sourceMap": true
}
}
ts를 tsconfig.json을 통해서 컴파일을 할 때는 vscode에서 cmd + shift + b -> tsc build - tsconfig.json 클릭.
window 환경에서는 에러가 발생할 가능성이 있음.
명령어를 복사 후
vscode 터미널이 아닌 cmd에서 실행.
댓글남기기