TypeScript

[TypeScript]

mSubWay 2024. 4. 9. 11:48

Javascript 기반으로 만들어진 언어

자바스크립트를 보완하기 위한 언어

 

Type 안정성으로 실수를 피할 수 있어 생산성이 높아진다.

C#, Java, Kotlin 처럼 사용한다. 

 

[TypeScript 사용 예]

const st : string = "스트링";

 

const player : {

  name : string,

  age? : number // nullSafety 도 사용 가능하다.

  readonly sex : string // 읽기 전용

} = {

  name: "이름"

}

이는 아래처럼 구조화할 수 있다.

type Player = { // class 대신에 type이라고 쓴다.

  name: string,

  age? : number

}

const player : Player

player.name = "이름"

 

unknown, void, never

 

call signature

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

const add: Add = (a, b) => a+b; // Add 에서 정해놨기 때문에 인자에서 지정하지 않아도 된다.

*kotlin의 constructor 처럼 생성자와 같은 기능을 한다.

constructor 처럼 여러개의 call signature를 정할 수도 있다. 

overloading 이다.

type Add = {

  (a: number, b: number) : number

  (a: number, b: string) : number

}

 

*NextJs : ReactJs 프레임워크 (하아.. 공부할거 많다....ㅡㅡ;;;)

 

다형성

generic

call signature 를 작성할때 들어올 확실한 타입을 모를때 사용(placeholder 느낌)

type List = {

  <T>(arr: T[]): T // T라고 안 써줘도 됨, 

}

const list: List = (arr) = arr

const a = list([1,2,3,4]);

const b = list(["문자", true, 3, 4, "문자");

이렇게 어떤 타입이든 추론해준다.

function list<T>(a: T[]) {

  return arr

} // 이렇게 함수형으로도 할 수 있다.

const a = list<string>([1,2,3,4]; // 이렇게 직접 제너릭을 명시하면 당연히 에러 - string 인데 int를 가지고 있으니