Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 글또10기
- reactnative
- array
- 슬라이딩윈도우
- 스크롤이벤트
- Filter
- 안드로이드빌드에러
- 리액트네이티브아이콘
- mainapplication.kt
- 상속
- javascript
- app.post
- map
- 배열중복요소제거
- TS
- react
- extends
- interface
- meatadata
- 이진탐색
- 타입스크립트
- generic
- async
- Spring
- Next.js
- materialicons
- app:compiledebugkotlin
- 페이지네이션
- set
- supabase 페이지네이션
Archives
- Today
- Total
rhanziy
TS - class의 타입지정 본문
object 뽑는 기계 class에도 타입을 지정해줄 수 있다.
ES6 신문법에서는 constructor함수를 쓰면 되는데, this.어쩌구를 쓰고 싶으면
미리 어쩌구를 필드값으로 지정해 줘야함.
class CarInfo {
model : string;
price : number;
constructor(a:string, b:number){
this.model = a,
this.price = b
}
tax() :number{
return this.price * 0.1;
}
}
let car = new CarInfo('소나타', 3000);
console.log(car); // { model : '소나타', price : 3000 }
console.log(car.tax()); // 300
필드값으로 model, price의 타입을 미리 정의해둬야 constructor안에서도 사용이 가능하다.
constructor함수엔 파라미터도 집어 넣을 수 있잖아요!? 똑같이 타입을 지정해주면 된다.
default parameter로 쓰려면 a = '소나타' 이렇게 해주기.
constructor에 의해 항상 object자료가 생산되기때문에 return타입은 지정해줄 필요가 없다.
tax()를 보면, CarInfo라는 클래스의 prototype 함수인데 모든 CarInfo클래스를 사용한 자식이면
tax()함수를 쓸 수 있는 것. 했던 것 처럼 함수 타입 지정 해주면 됨.
class Word{
num;
str;
constructor(...param){
let 숫자들 :number[] = [];
let 문자들 :string[] = [];
param.forEach((e)=>{
if(typeof e === 'string'){
문자들.push(e);
} else {
숫자들.push(e);
}
})
this.num = 숫자들,
this.str = 문자들
}
}
let objj = new Word('kim', 3, 5, 'park');
console.log(objj.num); // [ 3, 5 ]
console.log(objj.str); // [ 'kim', 'park' ]
constructor에는 rest parameter도 들어올 수 있어요. ...param <<
Word클래스 생성 후 입력값에 따라 문자는 문자대로, 숫자는 숫자대로 구분해주는 obj생성.
내부에서 타입 지정 후 forEach함수로 문자, 숫자 구분해서 push해주기.
'Html_css_js' 카테고리의 다른 글
TS - rest 파라미터, destructuring type지정 (0) | 2023.01.28 |
---|---|
TS - interface 로 type 키워드 구현 (0) | 2023.01.27 |
AJAX로 서버에 DELETE 요청하는법, 요청에 응답하는 여러가지 방법 (0) | 2023.01.17 |
TS - 함수의 type alias (0) | 2023.01.05 |
TS - Literal types로 값 지정하기 (1) | 2023.01.05 |
Comments