The API documentation specifies that controls only need to implement IControl interface, however the current addControl requires Control class.
Suggestion is to overload the addControl and removeControl methods to allow for this, while to not break the existing controls like NavigationControl.
As can be seen in the `mapbox-gl-js` [source code](https://github.com/mapbox/mapbox-gl-js/blob/master/src/ui/camera.js#L370), the `fitBounds()` function receives `AnimationOptions & CameraOptions`.
It then calls the `flyTo` or `easeTo` functions according to the options it received.
The `FitBoundsOptions` interface extends `FlyToOptions` as that already extends `AnimationOptions & Camera Options`.
* Update mapbox-gl and geojson types
* Make geojson coordinates optional
* Increase mapbox type header
* Remove changes of GeometryObject and use internal mapbox any geometry type
* Fix some mapbox-gl mismatching typings
* Increase version and fix ts options
* Remove flag
* Add back strictFunctionTypes: true flag
* More types fix
* Make fill-outline-color optional
⚠️ Breaking changes
GeolocateControl breaking changes https://github.com/mapbox/mapbox-gl-js/pull/4479
The option watchPosition has been replaced with trackUserLocation
The camera operation has changed from jumpTo (not animated) to fitBounds (animated). An effect of this is the map pitch is no longer reset, although the bearing is still reset to 0.
The accuracy of the geolocation provided by the device is used to set the view (previously it was fixed at zoom level 17). The maxZoom can be controlled via the new fitBoundsOptions option (defaults to 15).
New option showUserLocation to draw a "dot" as a Marker on the map at the user's location
* Fix first round of weak type errors
Done through griddle-react
* 95% done with weak type fixes
* Fix last couple of weak type errors
* Remove some lint from mithril tests
* mithril's Lifecycle is not a weak type any more
Restore the Lifecycle constraints in the rest of the definitions.
* Fix react-redux tests after #16652 broke them
* Remove package-lock.json