Life Developer
인생 개발자
전체 글 (141)
[typescript]class - readonly

readonly를 사용하면 생성자로 값 세팅가능하고 그외방법으로 값을 넣지 못함.

그리고 public일때도 외부에서 변수 읽기만 가능.

 

 

class Person{

    private readonly _name:string =null;

    public readonly age:number=30;

 

    constructor(name:string){

        this._name=name;

    }

 

    public setName(name:string){

        //this._name=name;

    }

}

 

const p:person = new Person('kim');

console.log(p.age);

//p.age=36;

  Comments,     Trackbacks
[typescript]class - getter와 setter

class Person{

    constructor(private _name:stringprivate _age:number){

 

    }

 

    hello():void {

        console.log(this._name);

    }

 

    getName():string{

        return this._name;

    }

 

    setName(name:string){

        this._name=name;

    }

}

 

const person : Person = new Person('kim',30);

 

console.log(person.getName());

person.setName('aaaa');

console.log(person.getName());

  Comments,     Trackbacks
[typescript]class - 자식 생성자는 super를 꼭 가져야함

class Person{

    constructor(protected _name:stringprotected _age:number){

 

    }

 

    hello():void {

        console.log(this._name);

    }

}

 

const person : Person = new Person('kim',30);

person.hello();



class Child extends Person{

    constructor(){

        super('man',300);

    }

}

 

const child:Child = new Child();

 

child.hello();

'Developer' 카테고리의 다른 글

[typescript]class - readonly  (0) 2020.10.01
[typescript]class - getter와 setter  (0) 2020.10.01
[typescript]class - class안에 생성자의 private 변수  (0) 2020.10.01
[typescript]class - protected  (0) 2020.10.01
[typescript]class - private  (0) 2020.10.01
  Comments,     Trackbacks
[typescript]class - class안에 생성자의 private 변수

class Person{

    private _age:number;

 

    constructor(private _name:string, age:number){

        this._name=_name;

        this._age=age;

    }

 

    hello():void {

        console.log(this._name);

    }

}

 

const person : Person = new Person('kim',30);

person.hello();

  Comments,     Trackbacks
[typescript]class - protected

private 은 다접근 안됨.

 

protected는 부모자식에서만 됨.

 

 

class Parent{

    private privateProp:string;

    protected protectedProp:string;

 

    constructor(){

    }

}

 

class Child extends Parent{

    constructor(){

        super();

 

        this.protectedProp='protected';

    }

}

 

console.log(new Child());

 

==========================================================

 

class Person{

    protected _name:string = 'kim';

    private _age:number=null;

}

 

class Child extends Person{

    setName(){

        this._name='fuck';

    }

}

 

const person:Child = new Child();

 

person.setName();

console.log(person);

  Comments,     Trackbacks
[typescript]class - private

class Person{

    public name:string;

    private _age:number;

 

    constructor(age:number){

        this._age=age;

    }

}

 

const person:Person = new Person(35);

person.name='mark';

//person.age=23;  불가

console.log(person);

  Comments,     Trackbacks
[typescript]interface-indexibel 은 string과 number 만 가능

string number만 가능하다.

 

interface StringArray{

    [index:number]:string,

}

 

const sa:StringArray={};

sa[100]='1';

 

interface StringDictionary{

    [index:string]:string,

}

 

const sd:StringDictionary={};

sd.numdred='a';

 

interface StringArrayDictionary{

    [index: number]:string,

    [index:string]:string,

}

 

const sad:StringArrayDictionary = {};

 

sad[100]='d';

sad['a']='a';

  Comments,     Trackbacks
[typescript]interface-함수를 프로퍼티로

interface Person{

    name:string,

    hello():string,

}

 

const person:Person = {

    name:'kim',

    hello:():string=>{return 'hello'},

}

 

interface Person1{

    name:string,

    hello?():string,

}

 

const person:Person1 = {

    name:'kim',

}

  Comments,     Trackbacks