[TypeScript] TypeScript Grammar - 08

2023. 1. 8. 04:13·Development Study/Frontend
728x90

Previous Series

 

[TypeScript] TypeScript Grammar - 06~07

Previous Series [TypeScript] TypeScript Grammar - 03~05 3. Type alias This Posting contains how to alias type to other variables type myType = number | string; let grade: myType = 3 Use type to create type and use to annotate another. Usually, we use it wh

time-map-installer.tistory.com


8.  Class

class Train {
	color : string;
    constructor(color:string){
    	this.color = color;
    }
    start(){
    	console.log('start')
    }
}

const ktx = new Train('white');
ktx.start();

Data modifiers

  • pubclic
    • Child class, access available at both class and instance
  • protected
    • access available at child class
  • private
    • can access only in corresponding function
  • readonly
    • Just for reading, access available but denied edit

8_01.  Class_public

class Train {
	// color : string;
    constructor(public color:string){
    	this.color = color;
    }
    start(){
    	console.log('start')
    }
}

const ktx = new Train('white');
ktx.start();

8_02.  Class_private

class Train {
	private name: string = "train";
    color: string;
    constructor(public color:string){
    	this.color = color;
    }
    start(){
    	console.log('start')
    }
}

class Ktx extends Train {
	constructor(color: string){
    	super(color);
    }
    showName() {
    	console.log(super.name); // error because name is private
    }
}

const tx = new Ktx("White");

8_03.  Class_protected

class Train {
	private name: string = "train";
    color: string;
    constructor(public color:string){
    	this.color = color;
    }
    start(){
    	console.log('start')
    }
}

class Ktx extends Train {
	constructor(color: string){
    	super(color);
    }
    showName() {
    	console.log(super.name); // class inheritanced
    }
}

const tx = new Ktx("White");

8_04.  Class_readonly

class Train {
	private name: string = "train";
    color: string;
    constructor(public color:string){
    	this.color = color;
    }
    start(){
    	console.log(`start ${this.color}`);
    }
}

const ktx = new Train("White");
ktx.start()

 


8_05.  Class_static

class Train {
	private name: string = "train";
    color: string;
    static blocks = 10;
    constructor(public color:string){
    	this.color = color;
    }
    start(){
    	console.log('start');
        console.log(this.name);
        console.log(this.blocks); // error
    }
}

class Ktx extends Train{
	constructor(color: string, name){
    	super(color, name);
    }
    showName(){
    	console.log(super.name);
    }
}

const tx = new Ktx('white', 'NewKoreaTrain');
console.log(tx.blocks); // error

Q. Why error here??

A. Static can't be accessed by this & instance

    If we use static to member variable, we have to call this not 'this' but the class name.

    Also, method needs to call by coded class name

class Train {
	readonly name: string = "train";
    color: string;
    static blocks = 10;
    
    constructor(color: string, name){
    	this.color = color;
        this.name = name;
    }
    start(){
    	console.log('start');
        console.log(this.name);
        console.log(Train.blocks);
    }
    static staticStart(){
    	console.log('static start');
    }
}

class Ktx extends Train{
	constructor(color: string, name){
    	super(color, name);
    }
    showName(){
    	console.log(super.name);
    }
}

const tx = new Ktx('white', 'KoreaFastTrain');

console.log(Train.blocks);
console.log(Train.staticStart);

8_06.  Class_abstract

An abstract class can't generate by instance or object by using 'new'

Only available at class inheritance

class Train {
	private name: string = "train";
    color: string;
    constructor(public color:string){
    	this.color = color;
    }
    start(){
    	console.log(`start ${this.color}`);
    }
}

const ktx = new Train("White");
ktx.start()

Variables and methods have to be written on the side of the inheritance class

If you don't, error will visit you.

On the side of the inherited class, you can write specific functions


End

 

 

Next Series

 

[TypeScript] TypeScript Grammar - 09

Previous Series

time-map-installer.tistory.com

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'Development Study > Frontend' 카테고리의 다른 글

[Quick Tips] Create New React Project  (0) 2023.01.16
[TypeScript] TypeScript Grammar - 09  (0) 2023.01.08
[TypeScript] TypeScript Grammar - 06~07  (0) 2023.01.08
[TypeScript] TypeScript Grammar - 03~05  (0) 2023.01.07
[TypeScript] TypeScript Grammar - 02  (0) 2023.01.07
'Development Study/Frontend' 카테고리의 다른 글
  • [Quick Tips] Create New React Project
  • [TypeScript] TypeScript Grammar - 09
  • [TypeScript] TypeScript Grammar - 06~07
  • [TypeScript] TypeScript Grammar - 03~05
ThreeLight
ThreeLight
ThreeLight Studio의 블로그, TimeMap.exe에 오신 것을 환영합니다.
  • ThreeLight
    TimeMap.exe
    ThreeLight
  • 전체
    오늘
    어제
    • 분류 전체보기 (245)
      • Checkpoint (1)
      • (3D)Dev Deep Dive (0)
        • Templates & Guides (9)
        • Frontend origin (9)
        • Backend origin (1)
        • TroubleShootings (4)
      • Development Study (95)
        • Frontend (36)
        • Backend (21)
        • CS(Computer Science) (2)
        • Background Knowledges (11)
        • Algorithm (2)
        • Mobile (3)
        • AWS (6)
        • Python (6)
        • MSW(MapleStoryWorlds) (8)
      • Coding Test (59)
        • 문제.zip (1)
        • BaekJoon_JavaScript (0)
        • Programmers_JavaScript (9)
        • BaekJoon_Python (23)
        • Programmers_Python (10)
        • Undefined_Python (3)
        • Programmers_SQL (13)
      • 활동내역.zip (43)
        • 개인 (21)
        • Techeer (12)
        • Bootcamp (7)
        • Hackathon (1)
        • TeamProjects (2)
      • 여기 괜찮네??(사이트 | App) (5)
      • 재미있는 주제들 (8)
      • 개발 외 공부 저장소 (11)
        • 생산운영관리 (3)
        • 생활속의금융 (6)
        • 경영정보시스템 (2)
  • 링크

    • TimeMap.dmg (Portfolio)
    • GitHub 바로가기
    • 오픈프로필(카카오톡)
    • Medium 바로가기
    • Disquiet 바로가기
    • LinkedIn 바로가기
  • 인기 글

  • 태그

    Baek Joon
    JavaScript
    react
    TypeScript
    CSS
    programmers
    HTML
    프로그래머스
    SQL
    Python
  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
ThreeLight
[TypeScript] TypeScript Grammar - 08
상단으로

티스토리툴바