Open jongmoon opened 7 years ago
추가 - Constructor access modifier
constructor args 에 modifier 를 지정하지 않으면 this 에 바인딩 되지 않는... 숨겨진 그지같은 룰이 있습니다.
이거 반대아닌가요?
원래 consturctor args는 개발자가 직접 this에 바인딩 해줘야 하는데
modifier를 붙히면 typescript가 자동으로 binding 해 줌.
ㅋㅋㅋ
아 그렇게 순서를 바꾸니 그럴싸해보이네여... ㅋㅋㅋㅋㅋ
modifier 를 붙이면 그냥 일반 파라미터로 취급하는거 인게죠~ 다른 언어들 처럼 (모르면서 막 아는척...) 전 오히려 modifier 를 붙였을때 this 에 바인딩해주는게 좀 이상한 용법처럼 느껴지더라구요.
난 이게 어색하긴 한데... 괜찮다고 생각함. 대게 생성자로 받은 값을 instance 변수에 할당해서 사용하는 경우가 많다보니...
modifier를 명시적으로 붙여야만 처리를 해주는 것도 개발자가 그러한 점을 인지하고 modifier 설정을 해줬으니 내가 처리해 줄께 라는 점에서... 괜찮은 듯... ( private, public, protected가 어떤 제한을 설정한 건지를 생각해보면... )
그리고 어차피 안 붙히면 처리를 안하니 호환성에 문제도 없고...
개요
Properties
this
Implementing interfaces
위와 같은 Interface 를 interface 키워드를 이용해 아래와 같이 구현
그래서 무엇이 좋아지는가?
Constructor
function
함수의 기능
Interface function definition
constructor 의 경우 특이사항이 있다.
IComplexType 이 다음과 같이 constructor 를 가지고 있는 경우 에러를 유발한다.
생성자가 호환되지 않는다?
Class modifier
3가지 modifier
Constructor access modifier
TypeScript 에서 새로운 문법(?)
생성자에서 access modifier를 지정 가능할 수 있는 shorthand 문법
저자의 의견
Readonly properties
Class property accessors
property accessors 는 ES5 에 소개된 개념
주의사항
error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
Static functions
인스턴스 생성없이 Class 이름으로 접근가능한 함수
Static properties
함수 뿐만아니라 properties 도 static 속성 지정가능
Namespaces
동일한 이름을 갖는 서로 다른 라이브러리와의 충돌을 피하기 위한 일반적인 방법