상세 컨텐츠

본문 제목

[TIL] 2024.02.16 타입스크립트 맛만볼게

[TIL]

by 재호링 2024. 2. 16. 20:30

본문

타입스크립트와 자바스크립트의 차이 ?

What THE,, 단어에서 알 수 있듯이 타입에 차이가 있겠지..

그냥 C나 자바에서 쓰는 것 처럼 변수 앞에 int, char, boolean 주는 거겠지..

라고 생각했는데 진짜 맞네?

 

그래서 이 둘의 차이 점이란

자바스크립트는 동적타이핑 언어였다면 

타입스크립트는 정적타이핑 이라는 소리

 

그럼 생각보다 쉽겠는데?

// JS

let isDone = false;
let amount = 20;
let userName = "Alice";

function multiply(a, b) {
    return a * b;
}

console.log(multiply(5, 3));

 

// TS

let isDone: boolean = false;
let amount: number = 20;
let userName: string = "Alice";

function multiply(a: number, b: number): number {
    return a * b;
}

console.log(multiply(5, 3));

 

는 무슨 벌써부터 어지러움

난 자유로운게 좋고 코드들도 자유롭고 싶을텐데 왜 자유를 침범해?

어떻게 변수 하나하나에 Type을 먹이고 명시적으로 인생을 정해줘야 하는데?

이 아이들도 인생이 있고 자기들이 가고싶은 방향을 순수하게 정하고 싶을거 아냐😠

라고하면 안되겠죠?

 

네 그렇습니다 타입 스크립트는 명시적으로 타입을 지정해줘서

오류를 줄이고 코드의 안정성을 높여준답니다.

 

컴파일러가 타입 오류 발견하기도 쉽고 IDE가 더 나은 자동완성 리팩토링 도구

 

타입 체크까지 제공을 해준다네요 거기다 코드의 가독성과 유지보수성 까지

 

야무지잖아 어머 이건 사야 돼 타입스크립트 한잔해 ~🍻

 

PS

클래스와 상속 JS와 TS 비교

// JS

function Animal(name) {
    this.name = name;
}

Animal.prototype.speak = function () {
    console.log(`${this.name} makes a noise.`);
}

function Dog(name) {
    Animal.call(this, name);
}

Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;

Dog.prototype.speak = function () {
    console.log(`${this.name} barks.`);
}

let dog = new Dog('Rex');
dog.speak();

 

// TS

class Animal {
    name: string;

    constructor(name: string) {
        this.name = name;
    }

    speak() {
        console.log(`${this.name} makes a noise.`);
    }
}

class Dog extends Animal {
    constructor(name: string) {
        super(name);
    }

    speak() {
        console.log(`${this.name} barks.`);
    }
}

let dog = new Dog('Rex');
dog.speak();

 

근데 JS도 constructor(생성자) 사용하는데 왜 안넣어줬는지 의문

 

'[TIL]' 카테고리의 다른 글

[TIL] 2024.02.20 트러블슈팅  (0) 2024.02.21
[TIL] 2024.02.19 jest 디버깅 오류  (0) 2024.02.19
[TIL] 2024.02.15 sparpet 발표 후 회고  (2) 2024.02.15
[TIL] 2024.02.14 sparpet 트러블슈팅  (0) 2024.02.15
[TIL] 2024.02.14 passport-kakao  (0) 2024.02.14

관련글 더보기