이것은 흥미로운 질문입니다. 읽기 전용 속성의 개념은 TypeScript에서 다른 언어와 약간 다릅니다.
많은 언어에서 속성을 설정하려고 시도했지만 형식 스크립트가없는 경우 getter가있는 속성 (설정자가 없음)은 컴파일러 오류를 발생시킵니다.
속성을 설정하려고해도 아무런 차이가 없으므로 읽기 전용입니다. 세트가 자동으로 실패합니다. 내가 x.name = 'Example 2';
를 사용할 때
class Example {
get name() {
return 'Steve';
}
}
var y = new Example();
y.name = 'Example 2';
alert(y.name);
더 컴파일러 경고가 없습니다 : 여기
는 인터페이스없이 예입니다.
이 컴파일러 경고 인 경우이면 인터페이스 내에 속성의 읽기 전용을 지정하는 방법이있을 것으로 기대됩니다. 위의 정보를 감안할 때 인터페이스에서 읽기 전용 속성을 설정할 수는 없습니다.
interface Test {
name: string;
}
class Example {
get name() {
return 'Steve';
}
}
var x: Test = new Example();
x.name = 'Example 1';
alert(x.name);
var y = new Example();
x.name = 'Example 2';
alert(x.name);
이 경우에만 (가 설정할 수 있습니다 분명히 어떤 방법) 속성의 값을 얻을 수있는 방법을함으로써 읽기 전용 - 다움을 적용 할 수 있음을 의미합니다.
interface Test {
getName:() => string;
}
class Example {
getName() {
return 'Steve';
}
}
var x: Test = new Example();
//x.getName('Obviously not');
//x.getName() = 'Obviously not';
alert(x.getName());
var y = new Example();
//y.getName('Obviously not');
//y.getName() = 'Obviously not';
alert(y.getName());
정말이 질문에 대한 활동 부족에 놀랐습니다. 읽기 전용 속성은 매우 유용하며 TypeScript에서 구현하려고했던 첫 번째 패턴 중 하나입니다. – gravidThoughts