programing

TypeScript에서 @Prop decorator를 사용하면 컴파일러가 프로펠의 초기화를 요구하는 에러를 표시합니다.

shortcode 2022. 8. 30. 22:49
반응형

TypeScript에서 @Prop decorator를 사용하면 컴파일러가 프로펠의 초기화를 요구하는 에러를 표시합니다.

Vue를 TypeScript와 함께 사용하고 있으며vue-property-decorator패키지.

이렇게 소품을 사용할 때:

@Prop({ default: '' }) private type: string

TS 컴파일러 에러가 표시된다.Property 'type' has no initializer and is not definitely assigned in the constructor.

하지만 이렇게 초기화하면 다음과 같습니다.

@Prop({ default: '' }) private type: string = ''

브라우저 콘솔에 다음과 같은 경고가 표시됩니다.

vue.runtime.esm.js?ff9b:587 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten 
whenever the parent component re-renders. Instead, use a data or computed property based on the prop's 
value. Prop being mutated: "type"

이 시나리오에서 오류나 경고가 발생하지 않도록 하려면 어떻게 해야 합니까?

생각할 수 있는 것은, 다음과 같이 설정하는 것 뿐입니다."strictPropertyInitialization": falsetsconfig.json에 저장하지만 가능하면 피하고 싶습니다.

감사합니다!

첫 번째 오류 메시지는 TypeScript의 Strict Class Initialization(2.7에서 도입) 결과입니다.2.7 릴리즈 노트에는 특정 할당 연산자를 사용하는 방법이 기재되어 있습니다.!)를 참조해 주세요.당신의 경우 다음과 같이 할 수 있습니다.

@Prop({ default: '' }) private type!: string

언급URL : https://stackoverflow.com/questions/50422006/using-prop-decorator-for-typescript-compilers-gives-error-asking-to-initialis

반응형