본문 바로가기

Type Script

[TS] 이니셜라이저가 없고 생성자에 할당되어 있지 않습니다. 에러 해결

TypeSctipt 를 공부하던 중 , 다음과 같은 오류가 발생하였다.

 

속성 'x'은(는) 이니셜라이저가 없고 생성자에 할당되어 있지 않습니다.

 

강의의 코드를 똑같이 따라해도 내 파일에서만 오류가 떴다.

TypeScript 에서 설정의 문제였다.

 

해결:

tsconfig.json 에서 다음과 같이 

"strictPropertyInitialization": false 를 추가해주었더니 해결되었다.

 

http://daplus.net/javascript-%EC%86%8D%EC%84%B1-%EC%97%90%EB%8A%94-%EC%9D%B4%EB%8B%88%EC%85%9C-%EB%9D%BC%EC%9D%B4%EC%A0%80%EA%B0%80-%EC%97%86%EC%9C%BC%EB%A9%B0-%EC%83%9D%EC%84%B1%EC%9E%90%EC%97%90/

 

[javascript] 속성 '…'에는 이니셜 라이저가 없으며 생성자에 확실히 할당되지 않았습니다. - 리뷰

내 Angular 앱에는 구성 요소가 있습니다. import { MakeService } from './../../services/make.service'; import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-vehicle-form', templateUrl: './vehicle-form.component.html', st

daplus.net

 

 

strictPropertyInitialization 의미

정의되지 않은 클래스의 속성이 생성자에서 초기화되었는지 확인한다.

예를 들어 UserAccount 클래스의 constructor에서는 name 프로퍼티만 초기화해주고 email 프로퍼티는 선언만 하였는데, 이때 너무 강하게 타입 체킹 하는 느낌이 든다면, 이 옵션을 false로 줘서 빨간줄을 해결할 수 있다.

 

tsconfig를 수정하는게 마음에 안들면, non-null 단언 연산자를 이용해도 해결 할수 있다.

TYPESCRIPT
email!: string; // 어디선가 할당될 것이므로 에러를 무시하라는 의미

 

 

[TS] 📘 타입스크립트 컴파일 설정 - tsconfig 옵션 정리

타입스크립트 컴파일 설정 tsconfig.json은 타입스크립트를 자바스크립트로 변환할 때의 컴파일 설정을 한꺼번에 정의 해놓는 파일이라고 보면 된다. 프로젝트를 컴파일 하는데 필요한 루트 파일,

inpa.tistory.com