IntegrinentAttributes & IntegrinentClassAttributesReact.js 유형에는 할당할 수 없습니다.
함께 일해 왔습니다.react.js
잠시 동안최근에 다음과 같은 오류가 발생하기 시작했습니다.
Type '{}' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes'
무슨 일인지 모르겠어요.저는 그것에 대해 검색했고 제가 다른 사람들의 말을 발견한 것은 그것이 문제라는 것입니다.props
여기 제가 본 시나리오가 있습니다.다음보다는:
<MyComponent action={this.state.action} />
다음 작업은 괜찮습니다.
<MyComponent {...props} />
나는 이것이 무엇인지 이해하고 싶습니다.IntrinsicAttributes
그리고.IntrinsicClassAttributes
에react
왜 그런 종류의 오류가 발생하는지, 그리고 이것들이 실제로 무엇인지에 대한 자세한 답변을 해주실 수 있나요?
고유 속성 및 고유 클래스 속성
TypeScript로 구현된 인터페이스입니다.사용자 지정 구성 요소로 작업하는 동안 DOM 요소와의 React 및 .jsxs 상호 작용에 영향을 줍니다.
기본 원리
당신이 가지고 있다고 가정해 보겠습니다.
interface BarProps {
foo: string;
}
class Bar extends React.Component<BarProps> {
...
}
렌더링을 시도할 경우
render() {
return (
<form>
<Bar />
</form>
);
}
인터페이스 유형 검사를 위반하기 때문에 유사한 오류가 표시됩니다.구성 요소에는 필수 속성이 있어야 합니다.BarProps
여기서 논쟁으로 통과되었습니다.
효과를 보기 위해서는, 다음과 같은 일을 해야 할 것입니다.
render() {
return (
<form>
<Bar foo="Jack Daniel's"/>
</form>
);
}
또는 구성요소 정의 자체에서 제거할 수 있습니다.
class Bar extends React.Component<> {
...
}
아니면 만들어 보세요.foo
선택적..
interface BarProps{
foo?: string;
}
아이디어는 일관성을 구현하는 것입니다.
당신의 경우, 당신은 알 수 없는 명제를 통과하고 있습니다.action
구성 요소에 정의되어 있지 않을 수 있습니다.
다음과 같이 구성 요소를 호출할 때<MyComponent {...props} />
기본적으로 사용 가능한 모든 소품을 가져오라는 의미입니다.
명시적으로 전화를 걸 때action
버팀목 같은.<MyComponent action={this.state.action} />
그것은 큰 지방 오류를 던집니다.
언급된 오류는 상당히 악명 높습니다.이러한 오류를 강조하고 가능한 해결책을 공유하는 React 및 TypeScript에 대한 이 디버깅 가이드에서 더 많은 통찰력을 찾을 수 있습니다.
의 구현에 대해 자세히 알아볼 수 있습니다.IntrinsicAttributes
그리고.IntrinsicClassAttributes
이 저장소에.
Typescript's checker.t를 파고드는 것은 integrinalAttributes에 대한 할당이 이루어진 블록을 실행할 필요가 없기 때문에 해당 구성 요소의 호출에 대해 비교할 명시적인 JsxAttributes가 없기 때문에 가능합니다(ComparingJsxAttributes는 false일 수 있습니다).이 경우가 맞는지 확인해야 할 경우 Typescript의 소스 코드를 디버깅해 보십시오.
예를 들어, 여기 유형 스크립트는 구성 요소가 마운트될 때만 분해될 수 있도록 무언가가 전달될 것으로 예상합니다.
<MyComponent {...props} />
그러나 여기서 typescript는 이 .state.action을 정의되지 않은 것으로 간주하거나 유효한 값이 전달될 것인지 확신할 수 없기 때문에 null일 수 있습니다.
<MyComponent action={this.state.action} />
액션 소품의 유형을 제대로 알고 있더라도 말입니다.그것은 여전히 그것이 가치가 있는지 없는지를 알고 그것을 그것으로 봅니다.{}
빈 개체이므로 작업에 할당할 수 없습니다.
언급URL : https://stackoverflow.com/questions/59969756/not-assignable-to-type-intrinsicattributes-intrinsicclassattributes-react-js
'programing' 카테고리의 다른 글
여러 장치가 연결되어 있을 때 ADB Shell을 사용하는 방법은 무엇입니까?"오류: 둘 이상의 장치 및 에뮬레이터"로 실패함 (0) | 2023.06.17 |
---|---|
열에서 쉼표로 구분된 문자열을 별도의 행으로 분할 (0) | 2023.06.17 |
Python 요청 및 영구 세션 (0) | 2023.06.17 |
나중에 사용할 수 있도록 TypeScript 개체 구조 정의 (0) | 2023.06.17 |
Vuex 저장소로 UI 요소 바인딩 (0) | 2023.06.17 |