• Decoder that makes a field optional.

    Type Parameters

    • T

    Parameters

    • decoder: Decoder<T>

      The decoder for the field when it is present

    Returns Decoder<undefined | T>

    A decoder that accepts either the decoded value or undefined

    interface User {
    name: string;
    age?: number;
    }

    const userDecoder = JsonDecoder.object<User>(
    {
    name: JsonDecoder.string(),
    age: JsonDecoder.optional(JsonDecoder.number())
    },
    'User'
    );

    userDecoder.decode({name: 'John'}); // Ok<User>
    userDecoder.decode({name: 'John', age: 30}); // Ok<User>