[TypeScript] class

챔수·2023년 6월 2일
0

TS에서 class문법은 JS에 타입 추가하는 것과는 조금 다르게 타입을 추가 해줘야 한다.

필드값 지정

class 내부에는 모든 자식 object가 사용가능한 속성을 만들어 줄 수있다.

class Number{
	data = 0
}

let kim = new Number();
let park = new Number();

console.log(kim.data); 
console.log(park.data); 
  • 두 값 모두 .data를 통해 0이라는 값을 사용할 수 있게된다.

constructor 타입지정

ES6 신문법에서 class는 constructor함수를 사용해서 class를 만들어준다.

class Person {
  constructor (a){
    this.name = a;
    this.age = 20;
  }
}

JS에서처럼 TS에서 class를 만들어주면 에러 메세지가 나온다. 그래서 사용하고싶은 this.에 관해서 필드값 지정을 통해 미리 타입을 지정 해줘야 한다.

class Person {
  name: string;
  age: number;
  constructor (a: string){
    this.name = a;
    this.age = 20;
  }
}

임의로 들어오는 값 number, string 나누기

임의로 숫자와 문자열 값이 들어오면 타입에 맞춰 나눠주는 클래스를 만든다.

class Word{
  // 필드값을 먼저 지정 해준다. 
  num;
  str; 

  // 들어오는 파라미터에 ...을 붙여 전달된 인수들을 배열로 전달 받는다.
  constructor(...param : (number | string)[] ){
    let numbers :number[] = [];
    let strings :string[] = [];
    
	// forEach함수를 이용해 param배열을 전부 확인하고 각 타입에 맞는 배열에 넣어준다.
    param.forEach((i)=>{
      if (typeof i ==='string') {
        numbers.push(i)
      } else {
        strings.push(i)
      }
    })

    // 각 타입에 맞게 넣어진 변수를 this.num과 this.str에 넣어준다.
    this.num = numbers;
    this.str = strings;
  }
}
profile
프론트앤드 공부중인 챔수입니다.

0개의 댓글