[TIL]22.05.12

jooooo·2022년 5월 12일
0
post-thumbnail
post-custom-banner

TIL

오늘은 타입스크립트의 기본을 공부했다. 갑작스런 일때문에 3일동안 거의 공부하지 못했지만 남은 기간 열심히 공부하고 기업과제도 최대한 마무리해야겠다. 잠을 줄여보자..흑흑

자바스크립트에서 타입스크립트로 넘어오는 이유?

타입 안정성 때문에 코드에 버그를 줄일 수 있고 런타임 에러 또한 줄일 수 있기 때문에 타입스크립트를 지향한다고 한다.

자바스크립트가 타입 안정성이 없는 이유?


배열 + bool 값을 했을때
배열과 boolean값이 없어지고 string이 된다.
허용하면 안될 코드를 허용해준다 (자바스크립트의 단점)


타입스크립트 사용시 number와 boolean 값을 더할 수 없다는 에러를 뱉어준다!

코드를 실행 시키면 안될 상황에 코드실행을 막아주지 않는다.
입력값이 2개로 보내야하는데 1개밖에 보내지않았음에도
코드를 실행시키고 NaN을 리턴해준다.(error가 나오는게 맞음)

타입스크립트 사용 시 2개의 입력값이 필요한데 1개 밖에 보내지지 않았다는 에러를 뱉어줌

joo라는 변수 안에 hello()라는 함수가 없음을 코드실행 전에 알려주는 것이 가장 좋지만
자바스크립트는 코드를 실행해야만 에러로 나타내준다.

타입스크립트는 코드를 실행하기 전 에러를 발생시키고 joo안에 hello()함수가 없음을
인지시켜준다.

타입스크립트의 타입지정방식

  • Alias타입 방식을 사용하여 타입을 재사용할 수 있다.

  • any는 타입스크립트로 부터 빠져나오고 싶을때 사용

타입스크립트에서만 존재하는 타입

  • 어떤 타입인지 모르는 변수를 타입스크립트에게 알려줘야할때
    unknown타입 사용(사용할때 타입지정해서 사용해야함 tyepeof)

  • void? 따로 지정해주지는 않는다. void는 '비어있는것'을 말함(아무것도 return하지 않음)

  • never? return하지않고 오류를 발생시킬 수 있는 함수

  • Function Overloads ?

동일한 이름에 매개 변수와 매개 변수 타입 또는
리턴 타입이 다른 여러 버전의 함수를 만드는 것을 말함.
TypeScript에서는 오버로드 signatures을 작성하여
"다양한 방식으로 호출할 수 있는 함수"를 지정할 수 있다.)

  • Polymorphism (다형성) ?

다형성이란, 여러 타입을 받아들임으로써 여러 형태를 가지는 것을 의미한다.

  • signatures
    ex) type Add = (a : number, b: number) => number;

  • Generics

제네릭은 C#이나 Java와 같은 언어에서 재사용 가능한 컴포넌트를 만들기 위해 사용하는 기법이다. 단일 타입이 아닌 다양한 타입에서 작동할 수 있는 컴포넌트를 생성할 수 있다.
(구체적인 타입을 지정하지 않고 다양한 인수와 리턴 값에 대한 타입을 처리할 수 있다.)
타입스크립트에서 제네릭을 통해 인터페이스, 함수 등의 재사용성을 높일 수 있다.

function A <T>(age: T): T {
    return age
} 
let resultA = A(14);

const B = <T extends {}>(age:T):T =>{
    return age;
}

let resultB = B(15);

resultA 타입과 resultB타입을 number로 인식!

profile
INFP🖐
post-custom-banner

0개의 댓글