reactjs - React Typescript: Nesne muhtemelen 'tanımsız'
React ile TypeScript kullanıyorum ve language.toLowerCase().includes(selectedCategory) döndürdüğümde Object is possibly 'undefined' hatası alıyordum, bu yüzden aşağıdaki gibi bir kontrol ekledim. Hata kayboldu ama bunun performansı etkileyip etkilemeyeceğinden emin değilim. Lütfen tavsiye verin.
import { filter } from 'lodash';
...
return filter(channels, ({
language
}: Channels) => {
if (
language &&
language.toLowerCase() !== selectedCategory &&
selectedCategory !== 'all'
) {
return false;
}
return (
language && language.toLowerCase().includes(selectedCategory)
);
});
Cevap #1
Bunun yerine İsteğe Bağlı Zincirleme kullanabilirsiniz.
Eğer dil null veya tanımsız (nullish) değilse, istediğiniz özelliğe veya metoda erişir; aksi takdirde undefined döndürür.
Cevap #2
Eğer language'in null veya undefined olamayacağından kesin olarak eminseniz, o zaman ! operatörünü (null olmayan değer teyit operatörü) kullanın ve kodunuzu şöyle yeniden yazın:
import { filter } from 'lodash';
...
return filter(channels, ({
language
}: Channels) => {
return language!.toLowerCase().includes(selectedCategory);
});
Veya bunun yerine İsteğe Bağlı Zincirleme kullanabilirsiniz.
