import * as React from 'react'; import Select, { SelectChangeEvent } from '@mui/material/Select'; import MenuItem from '@mui/material/MenuItem'; function genericValueTest() { function handleChangeWithSameTypeAsSelect(event: SelectChangeEvent) {} onChange={handleChangeWithSameTypeAsSelect} />; function handleChangeWithDifferentTypeFromSelect( event: React.ChangeEvent<{ name?: string; value: string }>, ) {} // @ts-expect-error onChange={handleChangeWithDifferentTypeFromSelect} />; // @ts-expect-error defaultValue should be a string defaultValue={1} // @ts-expect-error Value should be a string value={10} />; console.log(event.target.value)} value="1"> {/* Whoops. The value in onChange won't be a string */} ; // notched prop should be available (inherited from OutlinedInputProps) and NOT throw typescript error ; }