Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 쏙쏙들어오는함수형코딩
- 나는 flux좋아...
- 생코님Redux
- 유틸리티타입은 공식문서 자주 보자
- 출처 : 한입크기로 잘라먹는 타입스크립트
- 출처 : 자바스크립트 딥다이브
- 고등애플
- 함수형 코딩
- 에릭 노이먼
- 리엑트를 다루는 기술
- 이웅모
- 에릭 노먼드
- 로버트 C마틴
- 흥달쌤
- 오종택개발자님
- 큰돌의 CS책
- 쏙속 들어오는 함수형코딩
- 갈길이 멀구나
- 출처 : 코딩애플
- 쏙쏙 들어오는 함수형 코딩
- 자바스크립트 딥다이브
- 에릭노이먼
- 클린코드다시읽기
- 출처는 코딩애플
- https://product.kyobobook.co.kr/detail/S000001952246
- 김영한쌤
- 출처 : https://www.boostcourse.org/
- 출처는 코딩앙마
- 출처 : 코딩앙마
- 쏙쏙 들어오는 함수형코딩
Archives
- Today
- Total
흰둥씨의 개발장
[typescript] 클래스 본문
접근제한자 (Access modifier)
- public
ㄴ자식클래스나 클래스 인스턴스에서 접근가능
ㄴ아무것도 안적혀있으면 모두 public으로 간주됨
-private
ㄴ본인 클래스 내부 에서만 접근가능
ㄴ자식클래스 내부에서 사용할 수 없음
ㄴ변수앞에 #붙이면 private으로 처리됨
-protected
ㄴ자식클래스에서 접근가능
ㄴ클래스 인스턴스에서 접근 불가
class Car {
protected cat:string = "lovely";
private price : string = '1million';
#path : string = ''; //#은 private과 동일한 표기
readonly middlename : string = "hyo";
readonly lastname : string = "sun";
name: string = "car"; //접근제한자 안쓰면 public임
color: string; // 클래스 작성시 멤버변수는 미리 선언해줘야함
//맴버변수를 위와 같이 미리 선언하지 않는 방법으로는 readonly나 접근제한자 이용하면됨
//constructor(public color: string){ 접근제한자 public쓰기
//constructor(readonly color: string){ readonly쓰기
constructor(color: string){
this.color = color;
}
start(){
console.log("start");
console.log(this.price); //price는 private이기 때문에 Car클래스 내에서만 접근가능
console.log(this.#path); //#path는 private이기 때문에 Car클래스 내에서만 접근가능
}
}
class bmw extends Car {
constructor(color:string){
super(color);
}
showName(){
console.log(this.name); //name이 public이기 때문에 자식클래스내에서 접근 가능함
//console.log(this.price); #path, price는 private이기 때문에 자식클래스에서 접근불가
//console.log(this.#path);
console.log(this.cat); //cat은 protected여서 자식클래스에서는 접근 가능
}
}
const Z4 = new bmw("black");
//console.log(Z4.cat); cat은 protected여서 클래스인스턴스에서는 접근불가
Z4.name = "z4 car"; //수정가능
//Z4.middlename = "효" middlename은 readonly여서 수정불가
속성
readonly - 읽기 전용 속성으로 자식클래스에서 수정 불가
ㄴ바꾸고 싶으면 constructor내부에 매개변수로 바꿀수 있도록 가능
class CAR {
readonly message : string = "what the hell";// message가 read-only속성을 가지고있지만,
constructor(message: string){
this.message = message; //매개변수로 받아서 속성변경가능하게 처리
}
}
const SNS = new CAR("왓 더 헬");
console.log(SNS.message); //왓 더 헬
static - 클래스명으로만 접근가능 (자식인스턴스명이나 this등으로 접근안됨)
class CAR {
static wheels : number = 4; //static으로 선언된 정적변수는
start(){
//console.log(this.wheels); this로 접근하면 에러남
console.log(CAR.wheels); // class명으로 접근해야함
}
}
const BMW = new CAR();
//console.log(BMW.wheels); 에러남
console.log(CAR.wheels); // class명으로 접근해야함
추상 class - 클래스 앞에 abstract 키워드로 생성가능
abstract class CAR { //추상클래스
name: string = "car";
start(){
console.log(this.name);
}
abstract doingSth():void{}; //추상 메서드는 상속받은 클래스에서 반드시 정확히 구현해주어야 함
}
//const BMW = new CAR(); 추상클래스는 new키워드를 통해 객체 생성 불가
class Banz extends CAR { //추상클래스는 오로지 상속으로만 객체 생성 가능
//추상메서드는 상속받은쪽에서 구현안하면 에러남
doingSth(){ //추상메서드 구현
alert("I'll...");
};
}
'[오늘의 공부] > typescript' 카테고리의 다른 글
[typescript] 유틸리티 타입(Utility type) (0) | 2023.06.16 |
---|---|
[typescript] Generic (0) | 2023.06.16 |
[typescript] 리터럴과 유니온/교차 타입 (0) | 2023.06.15 |
[typescript] 함수 (2) | 2023.06.15 |
[typescript] 타스 왜 씀?/ 설치 / 기본 타입 / 인터페이스(interface) (0) | 2023.06.14 |