case(types, handler) {
        if (arguments.length === 1) {
            handler = types;
            types = [];
        }

        if (!Array.isArray(types)) types = [types];
        this._cases.push({ types, handler });
        return this;
    }
Add a case.
@param {string|Array.<string>} [types] - The type or types of arguments to match this case.
@param {Function} handler - The function to call when this case is matched.
@returns {ArgHandler} The handler for chaining.