Use type template for the source type of layers

This commit is contained in:
Frederic Junod
2019-01-28 15:33:29 +01:00
parent 53fc082fc2
commit 5318d52036
6 changed files with 12 additions and 40 deletions

View File

@@ -34,6 +34,7 @@ import Layer from './Layer.js';
* property on the layer object; for example, setting `title: 'My Title'` in the
* options means that `title` is observable, and has get/set accessors.
*
* @extends {Layer<import("../source/Image.js").default>}
* @api
*/
class BaseImageLayer extends Layer {
@@ -48,12 +49,4 @@ class BaseImageLayer extends Layer {
}
/**
* Return the associated {@link module:ol/source/Image source} of the image layer.
* @function
* @return {import("../source/Image.js").default} Source.
* @api
*/
BaseImageLayer.prototype.getSource;
export default BaseImageLayer;

View File

@@ -39,6 +39,7 @@ import {assign} from '../obj.js';
* property on the layer object; for example, setting `title: 'My Title'` in the
* options means that `title` is observable, and has get/set accessors.
*
* @extends {Layer<import("../source/Tile.js").default>}
* @api
*/
class BaseTileLayer extends Layer {
@@ -102,13 +103,4 @@ class BaseTileLayer extends Layer {
}
/**
* Return the associated {@link module:ol/source/Tile tilesource} of the layer.
* @function
* @return {import("../source/Tile.js").default} Source.
* @api
*/
BaseTileLayer.prototype.getSource;
export default BaseTileLayer;

View File

@@ -61,6 +61,8 @@ const Property = {
* property on the layer object; for example, setting `title: 'My Title'` in the
* options means that `title` is observable, and has get/set accessors.
*
* @template {import("../source/Vector.js").default|import("../source/VectorTile.js").default} VectorSourceType
* @extends {Layer<VectorSourceType>}
* @api
*/
class BaseVectorLayer extends Layer {
@@ -219,13 +221,4 @@ class BaseVectorLayer extends Layer {
}
/**
* Return the associated {@link module:ol/source/Vector vectorsource} of the layer.
* @function
* @return {import("../source/Vector.js").default} Source.
* @api
*/
BaseVectorLayer.prototype.getSource;
export default BaseVectorLayer;

View File

@@ -62,6 +62,8 @@ import SourceState from '../source/State.js';
*
* @fires import("../render/Event.js").RenderEvent#prerender
* @fires import("../render/Event.js").RenderEvent#postrender
*
* @template {import("../source/Source.js").default} SourceType
*/
class Layer extends BaseLayer {
/**
@@ -106,7 +108,7 @@ class Layer extends BaseLayer {
getChangeEventType(LayerProperty.SOURCE),
this.handleSourcePropertyChange_, this);
const source = options.source ? options.source : null;
const source = options.source ? /** @type {SourceType} */ (options.source) : null;
this.setSource(source);
}
@@ -130,15 +132,12 @@ class Layer extends BaseLayer {
/**
* Get the layer source.
* @return {import("../source/Source.js").default} The layer source (or `null` if not yet set).
* @return {SourceType} The layer source (or `null` if not yet set).
* @observable
* @api
*/
getSource() {
const source = this.get(LayerProperty.SOURCE);
return (
/** @type {import("../source/Source.js").default} */ (source) || null
);
return /** @type {SourceType} */ (this.get(LayerProperty.SOURCE)) || null;
}
/**
@@ -227,7 +226,7 @@ class Layer extends BaseLayer {
/**
* Set the layer source.
* @param {import("../source/Source.js").default} source The layer source.
* @param {SourceType} source The layer source.
* @observable
* @api
*/

View File

@@ -17,6 +17,7 @@ import CanvasVectorLayerRenderer from '../renderer/canvas/VectorLayer.js';
* property on the layer object; for example, setting `title: 'My Title'` in the
* options means that `title` is observable, and has get/set accessors.
*
* @extends {BaseVectorLayer<import("../source/Vector.js").default>}
* @api
*/
class VectorLayer extends BaseVectorLayer {

View File

@@ -70,6 +70,7 @@ import {assign} from '../obj.js';
* options means that `title` is observable, and has get/set accessors.
*
* @param {Options=} opt_options Options.
* @extends {BaseVectorLayer<import("../source/VectorTile.js").default>}
* @api
*/
class VectorTileLayer extends BaseVectorLayer {
@@ -165,11 +166,4 @@ class VectorTileLayer extends BaseVectorLayer {
}
/**
* Return the associated {@link module:ol/source/VectorTile vectortilesource} of the layer.
* @function
* @return {import("../source/VectorTile.js").default} Source.
* @api
*/
VectorTileLayer.prototype.getSource;
export default VectorTileLayer;