Ошибка машинописного текста: введите 'undefined', когда он определен - PullRequest
0 голосов
/ 23 марта 2020

Я писал этот код (файл .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 ведет себя так?

...