function isTypoTypeof(left, right, state) {
    var values;

    if (state.option.notypeof)
      return false;

    if (!left || !right)
      return false;

    values = state.inES6() ? typeofValues.es6 : typeofValues.es3;

    if (right.type === "(identifier)" && right.value === "typeof" && left.type === "(string)") {
      if (left.value === "bigint") {
        if (!state.inES11()) {
          warning("W119", left, "BigInt", "11");
        }

        return false;
      }

      return !_.includes(values, left.value);
    }

    return false;
  }
Validate comparisons between the result of a `typeof` expression and a
string literal.

@param {token} [left] - one of the values being compared
@param {token} [right] - the other value being compared
@param {object} state - the global state object (see `state.js`)

@returns {boolean} - `false` if the second token describes a `typeof`
                      expression and the first token is a string literal
                      whose value is never returned by that operator;
                      `true` otherwise