이번에는 타입스크립트의 기본적인 문법을 알아보도록 하겠습니다.
조심
*.ts 파일을 tsc 명령어로 *.js로 변환후에 node를 실행시켜야 함
var
var emotion="happy"
{
var emotion="sad";
}
console.log(emotion);
// Result
sad
let
var emotion2="sad";
{
let emotion2 : string = "happy";
console.log(emotion2);
}
console.log(emotion2);
// Result
happy
Array
var fruits2 : number[][] = [
[1,0,0],
[0,3,0],
[0,0,4],
];
for (var i=0; i<3; i++) {
for (var j=0; j<3; j++) {
console.log(fruits2[i][j]);
}
console.log("");
}
console.log(fruits2[0][0]*fruits2[1][1]*fruits2[2][2]);
// Result
12
Union Type : 결과값에 의한 타입추론
var unionX : string | number | boolean = false;
var unionY : boolean | string = "hello";
console.log(typeof unionX, unionX);
console.log(typeof unionY, unionY);
// Result
boolean false
string hello
문자열 표현
Tips) ‘ 와 “를 구분하지 않음
` 안에 문자열을 넣으면 입력한 그대로 변환되어서 나온다
Example)
let multi_line : string = `
one = 1
two = 2
`
console.log(multi_line);
// Result
one = 1
two = 2
디스트럭처링 지원
var params2 = ['happy 동물원', 100];
let [m_name2, m_num2] = params2;
console.log(`
이름 : ${m_name2}
만족도 : ${m_num2}
`);
// Result
이름 : happy 동물원
만족도 : 100
배열 메서드
Array.isArray()
Array.prototype.every()
Array.prototype.filter()
Array.prototype.forEach()
function printArray(element, index, array) {
console.log('[' + index + '] = ' + element);
}
[1, 2, 3, 'four'].forEach(printArray);
// result
[0] = 1
[1] = 2
[2] = 3
[3] = 'four'
람다함수
var pow3 = (x) => {
return x * x;
}
console.log(pow3(3));
console.log(((x) => {
return x * x;
})(4));
((x) => {
return x * x;
})(5);
// Result
9
16
25
getter, setter
var obj = {
msg: '',
get value() : string {
return this.msg + " world";
},
set value(v : string) {
this.msg = v;
}
}
obj.value = "Hello";
console.log(obj.value);
// result
Hello World
클래스 선언과 사용
class Car {
_brand : string;
_numTier : number;
_carName : string;
constructor(brand : string, carName : string, numTier : number) {
this._brand = brand;
this._carName = carName;
this._numTier = numTier;
}
}
class MyCar extends Car {
constructor(brand : string, carName : string, numTier : number) {
super(brand, carName, numTier);
}
get getCarName() : string {
return this._carName;
}
get getNumTier() {
return this._numTier;
}
}
let my : MyCar = new MyCar("KIA", "Happy", 4);
console.log(my.getCarName + " 자동차의 타이어 개수 : " + my._numTier);
Interface
interface Car {
setTier(tier : number);
getTier();
setCarName(name : string);
getCarName();
}
class CarImpl implements Car {
_tier : number;
_name : string;
setTier(tier : number) {
this._tier = tier
}
getTier() {
return this._tier;
}
setCarName(name : string) {
this._name = name;
}
getCarName() {
return this._name;
}
}
Abstract Class
abstract class SmallAnimals {
abstract sound(): string;
abstract name() : string;
makeSound() : string {
return `${this.name()} : ${this.sound()} `
}
}
class Mouse extends SmallAnimals {
sound() : string {
return "peep peep~";
}
name() : string {
return "mouse";
}
}
var mouse = new Mouse();
console.log(mouse.makeSound);