본문 바로가기
TypeScript

[TypeScript] class / object 타입 지정

by 딩박사 2023. 10. 19.
반응형

* 본 포스팅은 필자가 개인적으로 학습한 내용정리 및 리뷰를 위해 포스팅합니다.


 

class를 만들 때 타입지정하는 방법을 알아보자!
class User {
    name :string;
    constructor(){
    	this.name = 'HOO'
    }
}

let user1 = new User();
let user2 = new User();

▲ constructor()는 this.name을 사용하기 위해서는 필드값에 name이 미리 있어야 한다.

 

 

 

class User {
    name :string;
    constructor(a :string){
    	this.name = a;
    }
}

let user1 = new User('kim');
let user2 = new User('hoo');
console.log(user2) // name: "hoo"

constructor 파라미터의 타입지정도 가능하다!

 

 

 

class User {
    name :string;
    constructor(a :string){
    	this.name = a;
    }
    
    함수(a :string){
    	console.log('사용자' + a);
    }
}

let user1 = new User('kim');
let user2 = new User('hoo');
user1.함수('han') // 사용자han

 

 

 


Object에 interface를 이용해 타입지정하는 방법을 알아보자!
interface User { name : string, phone : number }
let user :User = { name : 'kim', phone : 01012345678 }

▲ object 타입지정 시 interface를 사용

 

 

 

interface Person {
    name : string
}
interface Animal extends Person {
    age : number
}

let 사람 :Person = { name : 'kim' }
let 동물 :Animal = { name : 'jack', age : 3 }

extends를 사용하여 타입 상속가능!!

 

 

 

type Person = { name : string }
type Animal = { age : number } & Person

▲ &기호(intersection type)를 사용하여 extends와 같은 기능 수행

 

 

 

interface는 중복선언이 가능하지만 type은 중복선언이 불가능하다!!!

 

 

 

 extends는 중복속성이 발생되면 에러로 미리표시하여 주지만

 

 

 &를 사용 중 중복속성이 발생되면 미리 에러가 나지 않는다...

 

 

 

결론

class를 만들 때 타입을 지정하는 방법과 interface 사용방법을 좀 더 자세하게 익힐 필요가 있다. &보다는 extends가 더 좋은 거 같다..

반응형

댓글