class 에서 type지정

크롱·2023년 7월 24일
0

TypeScript

목록 보기
8/25

🐷 class 기본 문법

constructor 외의 공간을 필드값이라고 하는데, 타입스크립트에서 constructor()는 필드값에 어쩌구가 미리 있어야 this.어쩌구 가능

class Person {
   data = 0; 
   ==> 필드값, constructor와 똑같은 역할✍💀 
   
   name :string; 

   constructor(name :string){
   	this.name=name
   }
   함수(a :string){
   	console.log('안녕'+a);
   }
}

//prototype
//Person.prototype.함수 = function(){} 이거랑
//위에다가 함수()정의한거랑 똑같음.

let 사람 = new Person('kim');
사람.함수('크롱');
console.log(사람.data) //0

🦒 예제

1번

Car 클래스를 만들고 싶습니다.
1. { model : '소나타', price : 3000 } 이렇게 생긴 object를 복사해주는 class를 만들어보십시오.
2. 그리고 복사된 object 자료들은 .tax() 라는 함수를 사용가능한데 현재 object에 저장된 price의 10분의1을 출력해주어야합니다.
3. model과 price 속성의 타입지정도 알아서 잘 해보십시오. tax() 함수의 return 타입도요.

class Car {
  model: string;
  price: number;
  constructor(model, price) {
    this.model = model;
    this.price = price;
  }
  tax(): number {
    return this.price / 10;
  }
}

let car1 = new Car('소나타', 3000);

2번

class인데 파라미터가 잔뜩 들어가는 class Word를 만들어봅시다.

  1. object 만들 때 new Word() 소괄호 안에 숫자 혹은 문자를 입력하면
  2. 숫자는 전부 object 안의 num 속성 안에 array 형태로 저장되고
  3. 문자는 전부 object 안의 str 속성 안에 array 형태로 저장되는class를 만들어봅시다.
  4. class 만들 때 넣을 수 있는 숫자와 문자 갯수는 일단 제한은 없습니다. 그리고 타입 빼먹지 마셈

파라미터 잔뜩들어가게 하는거, 그거 어떻게하는건데🙋

...사용💘
==> 예시

class Word {
  a;
  constructor(...a) {
    this.a = a;
  }
}
let obj = new Word('kim', 20);
console.log(obj);

업로드중..
배열이되엇슴니다.

class Word {
  nums;
  str;

  constructor(...param: (number | string)[]) {
    let nums: number[] = []; //배열의 원소는 숫자뿐
    let str: string[] = [];

    param.forEach((a) => {
      if (typeof a == 'string') {
        str.push(a);
      } else {
        nums.push(a);
      }
    });

    this.nums = nums;
    this.str = str;
  }

}

let obj = new Word('kim', 3, 4, 'hi');
console.log(obj.nums); // [3, 4]
console.log(obj.str); //['kim','hi']
profile
👩‍💻안녕하세요🌞

0개의 댓글