Finns det ett sätt för Typescript att korrekt härleda att array.at(x) måste vara definierad?
Låt oss säga att jag har en array som kan vara tom:
const cheeses: string[] = ...
console.log('my favorite cheese is ',
cheeses.length > 0 ? cheeses.at(-1)?.toUpperCase() : 'GORGONZOLA'
)
Detta ger ett typfel vid cheeses.at(-1): Objektet kan vara odefinierat.
Jag kan fixa det med (mycket fulare) cheeses[cheeses.length - 1].toUpperCase() (även om det i själva verket verkar kringgå alla typkontroller, eftersom jag också kan anropa [cheeses.length - 10] utan fel.)
Finns det ett sätt att få Typescript (4.6.x) att sluta sig till att cheeses.at(-1)? måste vara definierad?