# Module: ol/interaction/Select

This documentation is for OpenLayers v10.9.0. The latest is v.

## ol/interaction/Select

### Classes

SelectEvent
Select

### Type Definitions

#### FilterFunction()

interaction/Select.js, line 28

  A function that takes a `Feature` and returns `true` if the feature may be selected or `false` otherwise.

#### Options{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `addCondition` | Condition | undefined | A function that takes a `MapBrowserEvent` and returns a boolean to indicate whether that event should be handled. By default, this is `never`. Use this if you want to use different events for add and remove instead of `toggle`.
  `condition` | Condition | undefined | A function that takes a `MapBrowserEvent` and returns a boolean to indicate whether that event should be handled. This is the event for the selected features as a whole. By default, this is `singleClick`. Clicking on a feature selects that feature and removes any that were in the selection. Clicking outside any feature removes all from the selection. See `toggle`, `add`, `remove` options for adding/removing extra features to/ from the selection.
  `layers` | Array<Layer> | function | undefined | A list of layers from which features should be selected. Alternatively, a filter function can be provided. The function will be called for each layer in the map and should return `true` for layers that you want to be selectable. If the option is absent, all visible layers will be considered selectable.
  `style` | StyleLike | null | undefined | Style for the selected features. By default the default edit style is used (see `Style`). Set to `null` if this interaction should not apply any style changes for selected features. If set to a falsey value, the selected feature's style will not change.
  `removeCondition` | Condition | undefined | A function that takes a `MapBrowserEvent` and returns a boolean to indicate whether that event should be handled. By default, this is `never`. Use this if you want to use different events for add and remove instead of `toggle`.
  `toggleCondition` | Condition | undefined | A function that takes a `MapBrowserEvent` and returns a boolean to indicate whether that event should be handled. This is in addition to the `condition` event. By default, `shiftKeyOnly`, i.e. pressing `shift` as well as the `condition` event, adds that feature to the current selection if it is not currently selected, and removes it if it is. See `add` and `remove` if you want to use different events instead of a toggle.
  `multi` | boolean (defaults to false) | A boolean that determines if the default behaviour should select only single features or all (overlapping) features at the clicked map position. The default of `false` means single select.
  `features` | Collection<Feature> | undefined | Collection where the interaction will place selected features. Optional. If not set the interaction will create a collection. In any case the collection used by the interaction is returned by `getFeatures`.
  `filter` | FilterFunction | undefined | A function that takes a `Feature` and a `Layer` and returns `true` if the feature may be selected or `false` otherwise.
  `hitTolerance` | number (defaults to 0) | Hit-detection tolerance. Pixels inside the radius around the given position will be checked for features.