У меня есть объявление объекта flowtype, которое выглядит так:
type ProjectType = {
// removed for brevity
releases?: Array<ReleaseType>
}
Бывают случаи, когда выпуски не включены в объект, поэтому, когда я хочу использовать его, я сначала проверяю его. Итак, здесь, позже в моем коде, я получаю доступ к этому массиву после такого условия:
if (selectedProject
&& selectedProject.releases
&& selectedProject.releases.length) {
majorReleasesSet = new Set(selectedProject.releases.map((release: ReleaseType): string => (
release.major)));
projectHasNoReleases = false;
projectLatestMajorRelease = selectedProject.releases.slice(-1)[0].major;
projectLatestMinorRelease = selectedProject.releases.slice(-1)[0].minor;
}
Но поток не нравится, жалуясь:
Cannot call selectedProject.releases.slice because property slice is missing in undefined [1].
components/TimeEntries/EntryForm.jsx
123│ release.major)));
124│ projectHasNoReleases = false;
125│ projectLatestMajorRelease = selectedProject.releases.slice(-1)[0].major;
126│ projectLatestMinorRelease = selectedProject.releases.slice(-1)[0].minor;
127│ }
128│
129│ const projectLatestRelease = `${projectLatestMajorRelease}.${projectLatestMinorRelease}`;
Что в мире мне не хватает? Я попытался добавить Array.isArray(selectedProject.releases)
, но поток все еще жаловался. Потоковые списки ошибок в обеих строках 125 и 126.