
기본 명령어
npm init
npm install -g typescript
tsc -w 파일명.ts
tsc --init
tsc
tsc -w
npm i typescript --save-dev
기본 문법
형식변환법
let what;
what = '문자열';
let len1 = (<string>what).length;
let len2 = (what as string).length;
변수선언방법
var i = 10;
var j: any;
j = "안녕";
var k: number;
var b: boolean = true;
var str: string = "안녕하세요";
var arr: string[] = ["안녕", "잘가"];
가독성을 위한 언더스코어 문자
const number = 1_000_000;
console.log(number);
옵셔널
const myFunc(a: number) {
return a * a;
}
const myFunc = (a: number) => a * a;
function clacultateSum(x: number, y:number, z?:number, ...restNumbers:number[]) : number {
return 1;
}
공용구조체 형식
let twoType: string | number;
twoType = '문자열저장';
twoType = 123;
twoType = [1, 2, 3];
type TechType = "가나다" | "안녕" | "변수";
let 변수: TechType = "가나다";
type PrimitiveType = string | number | boolean;
let pt1: PrimitiveType = Date.now();
Enum
enum ConsoleColor {
Red,
Green,
Blue,
}
console.log(ConsoleColor);
enum Color {
Red = 10,
Green,
Blue = 20,
}
console.log(Color);
const enum Operator {
ADD,
DIV,
MUL,
SUB,
}
const compute = (op: Operator, a: number, b: number) => {
switch (op) {
case Operator.ADD:
console.log(a + b);
break;
case Operator.DIV:
console.log(a / b);
break;
case Operator.MUL:
console.log(a * b);
break;
case Operator.SUB:
console.log(a - b);
break;
default:
break;
}
};
compute(Operator.ADD, 2, 3);
정규식
let source = "How are you?";
let regex;
regex = /how/;
console.log(regex.test(source));
regex = /how/i;
console.log(regex.test(source));
함수 오버로드
function multi(sender: string | number): void {
switch (typeof sender) {
case "string":
console.log(sender);
break;
case "number":
console.log(sender);
break;
}
}
multi(123);
multi("가나다");
매서드의 매개변수에 콜백함수 사용
const go = () => {
log("직진");
};
const back = () => {
log("후진");
};
function runnerCall(runner: Function) {
runner();
}
runnerCall(go);