It needs to be able to return multiple types. The translation helper will return an array, a string or null because in certain circumstances you might be retrieving an array of translation messages, e.g.
__('validation.between')
/**
'between' => [
'array' => 'The :attribute field must have between :min and :max items.',
'file' => 'The :attribute field must be between :min and :max kilobytes.',
'numeric' => 'The :attribute field must be between :min and :max.',
'string' => 'The :attribute field must be between :min and :max characters.',
],
*/
...or, you might be retrieving a specific message:
__('validation.between.string')
// 'The :attribute field must be between :min and :max characters.'
...or, a translation message might not exist at all:
__('validation.between.foobar)
// null