code: function createOneOfChecker(expectedEnumValues) {
  
      return createChainableChecker(function (data, dataName, componentName, fullDataName) {
  
          if (getDataType(expectedEnumValues) !== 'array') {
              throw new Error('[SAN ERROR] '
                  + 'Data `' + fullDataName + '` of `' + componentName + '` has invalid '
                  + 'DataType notation inside `oneOf`, array is expected.'
              );
          }
  
          var dataValue = data[dataName];
  
          for (var i = 0, len = expectedEnumValues.length; i < len; i++) {
              if (dataValue === expectedEnumValues[i]) {
                  return;
              }
          }
  
          throw new Error('[SAN ERROR] '
              + 'Invalid ' + componentName + ' data `' + fullDataName + '` of value'
              + '(`' + dataValue + '` supplied to ' + componentName + ', '
              + 'expected one of ' + expectedEnumValues.join(',') + ')'
          );
  
      });
  
  }
docs: 生成 oneOf 校验器
  
  @param  {Array} expectedEnumValues 期待的枚举值
  @return {Function}