는 예를 들어, 처음 사용될 때 속성을 추가 할 수있는 동적 언어이기 때문에 명시 적으로 컴파일 된 자바 스크립트를 언급 할 필요가 없다
때를 값을 설정하십시오 ...
속성이 정적이므로 클래스 이름을 통해 액세스해야합니다. 아래 예에서는 User._name
입니다.
class User {
private static _name: string;
static setName(name: string) {
User._name = name;
}
static getName() {
return User._name;
}
}
User.setName('Steve');
alert(User.getName()); // 'Steve'
내가 언급 한 바와 같이, 자바 스크립트가 필요하지 않기 때문에 _name
특성이있을 것이라는 사실을 "설정"할 필요가 없습니다.
var User = (function() {
function User() {
}
User.setName = function (name) {
User._name = name; // this adds a property if it doesn't exist
};
User.getName = function() {
return User._name;
};
return User;
})();
User.setName('Steve');
alert(User.getName());
당신이 처음부터 값을 지정해야합니다, 그것은 표시 할 경우 : 다음은 위의 예에서 출력은
private static _name = '';
컴파일 된 JS 나에게 유효한 것 할 필요가있다. 왜 더 이상 그들을 보지 않겠습니까? –
@ JohannesKlauß : 두 개의 이미지를 추가했습니다. 첫 번째 이미지에는 런타임에 개인 변수 및 오류가 발생하지 않지만 두 번째 이미지에는 이전 버전의 이미지 (이전 버전의 typeScript)가 표시됩니다. 왜 컴파일 된 버전이 유효하다고 생각하는지 모르겠습니다. 개인 변수 선언을 포함할까요? – SharpCoder