// Write 데코레이터 팩토리functionWrite(able:boolean=true) {// Write 데코레이터returnfunction(t:any,p:string,d:PropertyDescriptor) { d.writable = able; }}// Button 클래스classButton {// 생성자constructor(public el:HTMLButtonElement){}// Write 데코레이터 사용// false 전달 ⟹ 쓰기 불가 @Write(false)disable(){ this.el.setAttribute('disabled','disabled'); }}// Button 객체 인스턴스 생성 및 변수 참조constbtn=newButton( <HTMLButtonElement>document.querySelector('.button') );// [오류]// 쓸 수 없는 메서드를 쓰려고 하였기에 쓸 수 없다고 오류 메시지를 출력합니다.// Uncaught TypeError: // Cannot assign to read only property 'disable' of object '#<Button>'btn.disable=function() { console.log(this); };