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?