2017-09-22 9 views
1

첫 번째 Typescript/Angular2 응용 프로그램을 작성 중이며 클래스/인터페이스에 문제가 있습니다. 클래스/인터페이스 - TypeError : s는 정의되지 않았습니다.

내 인터페이스 :

export interface Discount { 
    codSco: string; 
    desSco: string; 
} 

이 내가 형 할인의 요소 인스턴스화하려고 루틴 :

var Discount; 

s.codSco = '44'; 
s.desSco = '44'; 

을 그리고 이것은 내가 오류 메시지입니다 :

유형 오류 : s는 정의되지 않음

인터페이스에서 상속받은 클래스를 만들어야한다고 생각합니까? 몇 가지 가이드 라인을 제공해 줄 수 있습니까?

감사

답변

2

옵션 1 :

export interface Discount { 
    codSco: string; 
    desSco: string; 
} 

const s: Discount = { 
    codSco: '44', 
    desSco: '44' 
}; 

옵션 2 :

export class Discount { 
    codSco: string; 
    desSco: string; 
} 

const s = new Discount(); 

s.codSco = '44'; 
s.desSco = '44'; 

정리해 : 당신은 당신이 선언 변수에 값을 할당해야합니다. 클래스 생성자 또는 객체 리터럴을 통해 전달됩니다.

+0

고마워요.하지만 ... 왜 상수를 사용해야합니까? 루프 내에서 많은 할인을 generete해야하고 할인 배열에 추가해야합니다. – DarioN1

+0

그래서 const 대신 클래스가되어야합니다 ... – DarioN1

+1

'let s' 대신'const s'가 사용됩니다 변수's'가 나중에 다시 할당되지 않으면 typescript를 사용하는 경우'var s'를 잊어 버리는 것이 좋습니다. 그것은's' 속성을 변경할 수 없다는 것을 의미하지는 않습니다. – Amid

관련 문제