Búsqueda de sitios web

Alias de Typescript con punto


Tengo las siguientes importaciones (en el mismo archivo fuente de TS):

import {Vector as sourceVector} from "ol/source";
import {Vector} from "ol/layer";

Así es como se exporta Vector en ol/source:

export { default as Vector } from './source/Vector';

Y ol/capa:

export { default as Vector } from './layer/Vector';

¿Es posible reorganizar las importaciones de alguna manera para que se vea así:

import {Vector as source.Vector} from "ol/source";
import {Vector as layer.Vector} from "ol/layer";

Desafortunadamente, no tengo ningún control sobre ol/source y ol/layer y no puedo afectar sus decisiones de diseño ni sus convenciones de nomenclatura. Tengo que importar y usar ambos tipos en el mismo código fuente:

  ngAfterViewInit(): void {
    const markerSource = new sourceVector({});

    this.map = new Map({
      layers: [
        new TileLayer({
          source: new OSM(),
        }),
        new Vector({ source: markerSource }),
      ],
      view: new View({
        center: fromLonLat([11.57548, 48.137552]),
        zoom: 13,
      }),
      target: this.myMap.nativeElement,
    });

Respuesta #1

Para responder a tu pregunta:

import * as source from 'ol/source';
import * as layer from "ol/layer";

P.D.: Ten cuidado, esto podría posiblemente romper el tree shaking (pero no estoy muy seguro de cómo lo verificarías).


Pero como se mencionó en los comentarios, esto no es necesariamente mejor que lo que ya estás haciendo:

import {Vector as sourceVector} from "ol/source";
import {Vector as layerVector} from "ol/layer";

Puedes referirte de manera segura a cualquiera de los dos sin ningún conflicto de nombres y aún así sigue siendo bastante legible.

Artículos relacionados