개체가 '정의되지 않음'일 가능성이 있습니다.ts(2532)
Typescript의 Microsoft 팀원은 관련 트렌드에서 다음과 같이 말했습니다"This is working as intended".
많은 개발자들이 배열, 함수 콜백, 문자열 값, React 구성 요소 내부의 html 요소(내 경우)와 같은 다양한 사용 사례에서 이에 대해 이야기하고 있으며 목록이 점점 커지고 있습니다.
작동하지 않는 제안된 솔루션을 찾을 수 있었습니다. 배경은 "유형 시스템은 우리가 추적하는 것이 아닌 빈 배열과 비어 있지 않은 배열을 효과적으로 구분해야 합니다"라는 것입니다.
이에 대해 논의되는 몇 가지 링크는 다음과 같습니다.
오류 억제
Suppress errors in .ts files using ’// @ts-ignore’ comments
//@ts-ignore 주석은 다음 행에서 발생하는 모든 오류를 표시하지 않습니다. @ts-ignore 다음의 나머지 주석에서 어떤 오류가 억제되고 있는지 설명하도록 하는 것이 좋습니다.
이 주석은 오류 보고를 억제할 뿐이므로 이 주석을 매우 드물게 사용하는 것이 좋습니다.
내가 이것을 해결하는 방법
따라서 TypeScript에는 명시적 검사를 수행하지 않고 유형에서 null 및 undefined를 제거하기 위한 특수 구문도 있습니다. 식 다음에 작성하는 것
!
은 값이 null이 아니거나 정의되지 않았음을 나타내는 유형 어설션입니다.# case
const textElementRef = useRef();
// this provokes the error in the next line
const text = textElementRef.current;
// Object is possibly 'undefined'.ts(2532)'
const textWidth = text.offsetWidth;
# what I was trying
const textElementRef = useRef();
const text = textElementRef.current;
const textWidth = text!.offsetWidth; <-- type assertion
// causing : Property 'offsetWidth' does not exist on type 'never'.ts(2339)
# then I have to change the useRef definition too
const textElementRef = useRef<HTMLSpanElement>(null);
const text = textElementRef.current!; <-- type assertion
const textWidth = text.offsetWidth;
Reference
이 문제에 관하여(개체가 '정의되지 않음'일 가능성이 있습니다.ts(2532)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/senichimaro/object-is-possibly-undefinedts2532-k3a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)