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')

