reactjs - Typ 'XXX' | undefined kan inte tilldelas typen 'XXX' | undefined


const textRef = useRef<string>(null);       //ityped function https://www.npmjs.com/package/ityped

useEffect(() => {               //render ityped function
    init(textRef.current!, {
    showCursor: true,
    backDelay: 1500,
    backSpeed:60,
    strings: ["React Assignment by Phuc Le"],
    });
}, []);
return (     
    <span className="ityped" ref={textRef}></span>   //error here
)

när jag använder konvertera js till ts-fil, detta fel:

Type 'RefObject<string>' is not assignable to type 'LegacyRef<HTMLSpanElement> | undefined'.
  Type 'RefObject<string>' is not assignable to type 'RefObject<HTMLSpanElement>'.
    Type 'string' is not assignable to type 'HTMLSpanElement'.ts(2322)
index.d.ts(143, 9): The expected type comes from property 'ref' which is declared here on type 'DetailedHTMLProps<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>'

hände. Har någon stött på detta fel tidigare och hur åtgärdar man det?

Svar #1

Tja, du försöker tilldela ett HTMLSpanElement (eller med andra ord en instans av ett <span>-element) till en variabel som borde innehålla en string.

Ändra :

const textRef = useRef<string>(null);

till :

const textRef = useRef<HTMLSpanElement | null>(null);