object를 만드는 설계도이다.
클래스 이전에 object를 만드는 기본적인 방법은 function이다. 그리고
TypeScript 에서는 클래스도 사용자가 만드는 타입중의 하나이고, JS보다 강력합니다
class는 사용자가 만드는 type의 하나를 말한다.
-일종의 속성
-public으로 사용가능합니다.
class Person{
name:string;
age: number;
readonly location: string = 'Korea';
}
초기화 담당
constructor(name:string, age:number){
this.name = name
this.age = age
}
객체(클래스)에서는 행동을 뜻한다.
information():string{
return `${this.name}의 나이는 ${this.age}입니다.`
}
}
클래스에서 파생된 고유한것
실제로 생성된 후 메모리에 올라간다
const p1 = new Person('Yang',30) // instance가 된다.
const p2 = new Person('Jang',40) // instance가 된다.
console.log(p1.information())
console.log(p2.information())
class Person{
name:string;
private _age:number;
constructor(name:string, age:number){
this.name = name
this._age = age
}
get age(){
if(this._age === 0){
return '설정되지 않습니다.'
}
return `나이는 ` + this._age + `세로 추정 됩니다.`
}
set age(age){
if(typeof age === 'number'){
this._age = age
}
this._age = 0;
}
}
const p = new Person('Yang',60)
console.log(p.age)
class Aninmal {
name:string;
constructor(name:string){
this.name = name
}
sayName(){
return `${this.name}입니다`
}
}
class Person extends Aninmal{
constructor(name:string){
super(name)
}
sayName(){
return `동물의 이름은 ${super.sayName()} 사람의 이름은 ${this.name}입니다`
}
}
// 확장된 상속의 구조
const p1 = new Person('Yang')
console.log(p1.sayName())
// class base{
// result(){
// return 'Base'
// }
// }
// class Extend extends base {
// result(){
// return 'hard'
// }
// }
// const de = new Extend();
// console.log(de.result())