class 타입지정

고재현·2023년 8월 8일
0

TypeScript

목록 보기
9/13
post-thumbnail

필드값 타입지정

class 내부에는 모든 자식 object들이 사용가능한 속성들을 만들 수 있다.
예를 들어 모든 Person 클래스의 자식들에게 data라는 속성을 부여해주고 싶다면

class Person{
  data = 0;
}
let john = new Person();
let kim = new Person();

console.log(john.data);
console.log(kim.data);

이렇게 class 중괄호 안에다가 변수처럼 쓰면 된다.
그럼 john, kim 둘다 0이 할당되게 된다.

constructor 타입지정

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

필드값으로 먼저 name,age가 미리 정의되어야 constructor 안에서도 사용이 가능하다.

constructor 함수에 변수를 집어 넣을수 있는데

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

이렇게 넣는다.
타입지정을 따로 안하는 방법이 있는데

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

이렇게 바로 박아버리는 것이다.
이럼 굳이 타입지정을 하지 않아도 된다.

참고로 constructor 함수는 return 타입지정을 하면 안된다.
constructor에 의해서 항상 object자료가 생산되기 때문이다.

prototype 타입지정

class Person{
  name;
  age;
  constructor (a: string){
	this.name = a;
    this.age = 20;
  }
  //프로토타입 함수 넣는 곳
  함수(a: string){
  	console.log('안녕'+a)
  }
}
let 사람1 = new Person('kim');
사람1.함수('안녕')

이렇게 되면 모든 자식들이 함수()를 가져다가 쓸 수 있다.
위의 출력결과는 안녕안녕이 될 것이다.
prototype은 constructor와 다르게
파라미터 & return 타입지정을 자유롭게 할 수 있다.

profile
잘못된 내용이 있다면 알려주세요..!

0개의 댓글