Cześć, tu Jakub. Polubiłeś devFlipCards? Postaw mi kawę

4. Do czego służy operator `!` na końcu zmiennej?

Jeśli zmienna jest optional, co znaczy że poza wskazanym typem może przechowywać również undefined, to wykrzyknik na końcu upewnia kompilator, że w tym miejscu zmienna zawsze będzie przechowywała określoną wartość inną niż undefined.

type RandomType = { optionalValue?: string } const rt: RandomType = {optionalValue: "random"}; rt.optionalValue.length // 'rt.optionalValue' is possibly 'undefined'. rt.optionalValue!.length // no error thrown.

W powyższym przykładzie zastosowanie ! jest bezpieczne, ponieważ istnieje pewność, że wartość optionalValue zawsze jest różna od undefined.

Operator ten powinien być wykorzystywany z rozwagą, ponieważ jeśli wartość jednak będzie równa undefined, kod narażony jest na błędy typu Cannot read properties of undefined.

type RandomType = { optionalValue?: string } const rt: RandomType = {}; rt.optionalValue!.length // Cannot read properties of undefined (reading 'length')
Nie możesz znaleźć wspólnego terminu na spotkanie z przyjaciółmi? Sprawdź nasze narzędzie
commondate.xyz