I'm trying to enter conditional rendering, but it gives me the error: Element implicitly has an 'any' type because expression of type 'number' can't be used to index type 'types'. No index signature with a parameter of type 'number' was found on type 'types'.
Rendering is valid when everything is "any".
interface types { '0': JSX.Element; '1': JSX.Element; '2': JSX.Element; } export default function Economy(props: any) { const [step, setStep] = useState(0) const render = () => { const component: types = { '0':, '1': , '2': , } return component[step] } return ( {render()} )
Can anyone help me understand how to add types for this conditional rendering?
I need to understand how to add types for this conditional rendering
When indexing an object, you need to use the
keyof
operator. From the TypeScript documentation:Your
step
has typenumber
and cannot be used to indextypes
becausetypes
only has1,2, 3
. So you can manually setstep
tokeyof types
:Since
step
is a number, you also need the key: