или потому что user.name == undefined?
Ну так проверяй user
Так-то эквивалентный пример будет что-то типа
type User = Maybe<{
id: number
name: Maybe<string | null>
}>
user.fmap(u => u.string)
и тут мы имеем Maybe<string | null>, у которого тоже неясно, кто свалился, user или name, хотя на самом деле обычно радость как раз в возможности чеининга и в том, что не нужно думать, кто свалился
> Так-то эквивалентный пример будет что-то типа type User = Maybe<{ id: number name: Maybe<string | null> }> не совсем корректно. maybe указывает на "инициализировано или нет", | null указывает на "существует у инициализированного или нет"
для этого можно определить монаду для Some | Nothing | "не_инициализированно" но это уже не Maybe
Обсуждают сегодня