반응형
* 본 포스팅은 필자가 개인적으로 학습한 내용정리 및 리뷰를 위해 포스팅합니다.
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가 더 좋은 거 같다..
반응형
'TypeScript' 카테고리의 다른 글
[TypeScript] implements 키워드 (1) | 2023.10.31 |
---|---|
[TypeScript] Generic 함수 만들기 (0) | 2023.10.25 |
[TypeScript] 색다르게 타입도 변수에 담아서 쓰자(type alias) (0) | 2023.10.18 |
[TypeScript] 함수에 타입 지정하는 법 (4) | 2023.10.17 |
[TypeScript] 타입스크립트 기본 타입 정리 (0) | 2023.10.11 |
댓글