gpt4 book ai didi

带点的 typescript 别名

转载 作者:行者123 更新时间:2023-12-05 06:09:47 25 4
gpt4 key购买 nike

我有以下导入(在同一个 TS 源文件中):

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

Vectorol/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/sourceol/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 (但我不太确定您如何验证这一点)。


但是正如comments中提到的,这不一定比您已经在做的更好:

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

您可以安全地引用其中任何一个而不会发生任何命名冲突,并且它仍然非常可读。

关于带点的 typescript 别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64630038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com