내가 만난 가장 일반적인 ES6 관련 실수 중 하나는 맞춤법 오류 constructor
입니다. 클래스는 기본 생성자 메서드를 가지고 있기 때문에 분명히생성자 메서드 맞춤법 오류 방지
, 이것은 어떤 영향을하지 않습니다
interface IConstructor {
constructor: Function;
}
class Foo implements IConstructor {
contructor() { ... }
}
방법이 문제 바람직 컴파일시에, 타이프 라이터로 해결 될 수 있는가?
* "내가 만난 가장 일반적인 ES6 관련 실수 중 하나는 철자가 틀린 생성자 방법입니다."* - ReactJS와 같은 느낌입니다. 'componentDldMount' (misspell? 참조)를 작성하는 것만으로도 자동적으로 실패 할 것이고, 당신 스스로 끔찍한 버그를 추적 할 수 있습니다. 이것이 바로 정확한 메소드 이름 일치로 후크를 제공하는 API를 일반적으로 무시하는 이유입니다. 여기서 할 수있는 일은 IDE에 'ctor'를 작성하여 생성자 메소드를 생성하는 스 니펫 (snippet)을 생성하는 것입니다. –
@JohnWeisz 예, 스 니펫이 작동 할 수 있습니다. 그러나 Plunker에서 프로토 타입을 작성하는 것은 여전히 고통 스러울 수 있습니다. Angular 2에서 hook 메소드는 인터페이스를 통해 강제 실행되며,'class Foo는 OnInit'을 구현합니다. Flow와 비슷한 일을 할 수 있습니다. – estus
Angular 2의 문제는 선택적인 후크 방법의 철자를 강제로 지정할 수있는 방법이 없다는 것입니다 (여러 인터페이스를 통해 메소드를 배포하는 것 외에는 오류가 발생하기 쉽습니다). 당신은'constructor'이 선택적인 네이티브 훅 메소드라고 말할 수 있습니다. 불행히도 데코레이터를 생성자와 함께 사용할 수는 없지만 데코레이터 기반 접근 방식은 IMO가 훨씬 우수합니다. '@ componentDidMount'는 TypeScript 컴파일러에 의해 감지되기 때문에 잘못 입력 할 수 있습니다. –