2017-10-12 3 views
-1

내가 이런 모델이 있습니다각도 4 모델 속성

export class DepositReceipt{ 
    euro1: number; 
    euro2: number; 
    euro5: number; 
    euro10: number; 
    euro20: number; 
    euro50: number; 
    euro100: number; 
    euro200: number; 
    euro500: number; 
    totalAmount: number; 
} 

속성 totalAmount 실제로 다른 속성의 합입니다, 그것은 같은 모델 뭔가를 정의 할 수 있습니다 : totalAmount = euro500 + euro200 +... 아니면 가능하지 않으면 어떻게 작동시킬 수 있습니까?

서버에서 응답을 받으면 다른 사람들의 합계이기 때문에이 필드가 자동으로 계산됩니다.

+0

'얻을 totalAmount() {euro1 + euro2 + ...를 반환; }'? 아마도 TS 문서 (https://www.typescriptlang.org/docs/handbook/classes.html – jonrsharpe

답변

0

는 그냥 게터 정의 :

export class DepositReceipt{ 
    euro1: number; 
    euro2: number; 
    euro5: number; 
    euro10: number; 
    euro20: number; 
    euro50: number; 
    euro100: number; 
    euro200: number; 
    euro500: number; 
    get totalAmount() { return this.euro1 + this.euro2 + ... }; 
} 

그냥 일반 속성을 것처럼 그런 다음 deposit.totalAmount 액세스를, 당신은 함수로 호출하지 않습니다. (이것은 명백한 진술 할 수는 있지만 코멘트에서 나는 당신이 그것을 아는 지 모르겠군요.)

+0

)를 읽어야합니다. 그러나 어떤 기능도 사용하지 않고 가능합니까? – Alessandro

+0

속성을 함수라고 부르지 않습니다. 나는 그것을 명확히하기 위해 나의 대답을 업데이트했다. – Duncan

0

당신은 변수로 totalAmount를 선언 그래서 대신 간단한 get 함수를 사용할 수 있습니다 당신은로 정의 할 수 있습니다 :

get totalAmount() { return euro1 + euro2+ ...; } 
0

이것은 불가능합니다. 최선의 방법은 getter를 작성하고 값을 캐시하는 것입니다. 당신이 속성을 사용할 때마다

_totalAmount: number; 
get totalAmount(): number { 
    if (this._totalAmount == undefined) { 
     this._totalAmount = calculateTotalAmount(); 
    } 
    return this._totalAmount; 
} 

는 게터가 호출됩니다

receipt.totalAmount // uses the getter automatically