diff --git a/typescript/option/docs/main.md b/typescript/option/docs/main.md index e2c05a2..db1f2ec 100644 --- a/typescript/option/docs/main.md +++ b/typescript/option/docs/main.md @@ -194,7 +194,7 @@ A function to create options from nullable values. ### Signature ```ts -const fromNullable: <T>(value: T | null) => Option<T> +const fromNullable: <T>(value: Nullable<T>) => Option<T> ``` ### Usage diff --git a/typescript/option/src/helpers.ts b/typescript/option/src/helpers.ts index 09a419f..629e830 100644 --- a/typescript/option/src/helpers.ts +++ b/typescript/option/src/helpers.ts @@ -1,5 +1,12 @@ import { Option, Some, None } from './types' -import { Binder, Folder, Mapper, Predicate, BackFolder } from './internalTypes' +import { + Binder, + Folder, + Mapper, + Predicate, + BackFolder, + Nullable +} from './internalTypes' import { always, identity } from './internalHelperts' import Internals, { SomeClass, isOption } from './internals' @@ -106,6 +113,6 @@ export const flat = <T, U>(option: Option<T>): Option<U> => { ) } -export const fromNullable = <T>(value: null | T): Option<T> => { +export const fromNullable = <T>(value: Nullable<T>): Option<T> => { return value === null ? None : Some(value) } diff --git a/typescript/option/src/internalTypes.ts b/typescript/option/src/internalTypes.ts index a636b21..091ab91 100644 --- a/typescript/option/src/internalTypes.ts +++ b/typescript/option/src/internalTypes.ts @@ -5,3 +5,4 @@ export type Binder<T, U> = Mapper<T, Option<U>> export type Predicate<T> = Mapper<T, boolean> export type Folder<T, U> = (s: U, v: T) => U export type BackFolder<T, U> = (v: T, s: U) => U +export type Nullable<T> = T | null