带点的打字稿别名
Typescript alias with dot
我有以下导入(在同一个 TS 源文件中):
import {Vector as sourceVector} from "ol/source";
import {Vector} from "ol/layer";
下面是 Vector 在 ol/source:
中的导出方式
export { default as Vector } from './source/Vector';
和ol/layer:
export { default as Vector } from './layer/Vector';
是否可以通过某种方式重构导入,使其看起来像这样:
import {Vector as source.Vector} from "ol/source";
import {Vector as layer.Vector} from "ol/layer";
不幸的是,我无法控制 ol/source 和 ol/layer,而且我不能影响他们的设计决策和命名约定。我必须在同一源代码中导入和使用这两种类型:
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,
});
回答你的问题:
import * as source from 'ol/source';
import * as layer from "ol/layer";
P.S.: 注意这个 可能 可能会破坏 tree shaking (但我不太确定你是怎么做的验证)。
但是正如 中提到的,这并不一定比您已经在做的更好:
import {Vector as sourceVector} from "ol/source";
import {Vector as layerVector} from "ol/layer";
您可以安全地引用其中任何一个而不会发生任何命名冲突,而且它仍然非常可读。
我有以下导入(在同一个 TS 源文件中):
import {Vector as sourceVector} from "ol/source";
import {Vector} from "ol/layer";
下面是 Vector 在 ol/source:
中的导出方式export { default as Vector } from './source/Vector';
和ol/layer:
export { default as Vector } from './layer/Vector';
是否可以通过某种方式重构导入,使其看起来像这样:
import {Vector as source.Vector} from "ol/source";
import {Vector as layer.Vector} from "ol/layer";
不幸的是,我无法控制 ol/source 和 ol/layer,而且我不能影响他们的设计决策和命名约定。我必须在同一源代码中导入和使用这两种类型:
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,
});
回答你的问题:
import * as source from 'ol/source';
import * as layer from "ol/layer";
P.S.: 注意这个 可能 可能会破坏 tree shaking (但我不太确定你是怎么做的验证)。
但是正如
import {Vector as sourceVector} from "ol/source";
import {Vector as layerVector} from "ol/layer";
您可以安全地引用其中任何一个而不会发生任何命名冲突,而且它仍然非常可读。