Я писал этот код (файл .tsx)
const dataFiltered = currentSearch.searchString
? elements?.filter((dataElement: DataElement) => dataElement.name.startsWith(currentSearch.searchString))
: elements
const noElem = (!dataFiltered || dataFiltered.length === 0)
return(
<>
{noElem && 'No data match your search'}
{!noElem && (
<DataPreview elements={dataFiltered} />
)}
</>
)
и получаю эту ошибку
Type 'readonly DataElement [] | ноль | undefined «нельзя назначить типу« только для чтения DataElement [] ». Тип «undefined» не может быть назначен типу «только для чтения DataElement []». Ts (2322)
, но если я изменю
!noElem
на
!(!dataFiltered || dataFiltered.length === 0)
ошибки нет.
поэтому я наконец написал это
{!noElem && (
<DataPreview elements={dataElementsFiltered || []} />
)}
Почему Typescript ведет себя так?