SelectorEvent 在哪里定义以及如何将其导入以进行类型检查?
where is SelectorEvent defined and how to import it for type-checking purposes?
我正在使用下面的标准(我假设)代码来创建 select 交互,将其添加到地图上并在 selected 或 de[= 要素时采取一些行动33=]编辑:
const select: Select = new Select({
hitTolerance: 5,
multi: false,
condition: singleClick
});
this.map.addInteraction(select);
select.on('select', (se: SelectEvent) => {
console.log('select fired: ', se);
// do some stuff using se...
});
我的问题是我正在使用 TypeScript 并想充分利用类型检查,但我不知道从哪里导入 SelectEvent
。所以上面的代码没有通过类型检查:
`TS2304: Cannot find name 'SelectEvent'`
当我尝试时:
import {SelectEvent} from 'ol/interaction';
我得到:
TS2305: Module '"../../../node_modules/@types/ol/interaction"' has no exported member 'SelectEvent'.
开放层 - 我的 package.json
的相关部分是:
$ npm ls --depth=0 | grep -i ol | grep -v polyfill
├── @siedlerchr/types-ol-ext@1.0.0 (git+https://github.com/Siedlerchr/types-ol-ext.git#ec995982b2ba7aa4d415e67a350ec4b9f841ea37)
├── @types/ol@6.4.2
├── ol@6.4.3
├── ol-ext@3.1.15
搜索我发现的 SelectEvent
类型:
node_modules/@types/ol/interaction/Select.d.ts:declare class SelectEvent extends BaseEvent {
..但我不清楚如何导入此声明(而且它似乎甚至没有开始导出)。
正如您的 grepping 指出的那样:
node_modules/@types/ol/interaction/Select.d.ts:declare class SelectEvent extends BaseEvent
在node_modules/@types/ol/interaction/Select.d.ts
导出:
export class SelectEvent extends Event {
constructor(type: SelectEventType, selected: Feature[],deselected: Feature[], mapBrowserEvent: MapBrowserEvent);
deselected: Feature[];
mapBrowserEvent: MapBrowserEvent;
selected: Feature[];
}
所以你只需要直接从那里导入它,就像这样:
import { SelectEvent } from "ol/interaction/Select";
这应该可以解决您的问题。
顺便说一句,在另一个堆栈交换中也有出色的支持 community 专门针对所有类型的空间软件工程问题。
我正在使用下面的标准(我假设)代码来创建 select 交互,将其添加到地图上并在 selected 或 de[= 要素时采取一些行动33=]编辑:
const select: Select = new Select({
hitTolerance: 5,
multi: false,
condition: singleClick
});
this.map.addInteraction(select);
select.on('select', (se: SelectEvent) => {
console.log('select fired: ', se);
// do some stuff using se...
});
我的问题是我正在使用 TypeScript 并想充分利用类型检查,但我不知道从哪里导入 SelectEvent
。所以上面的代码没有通过类型检查:
`TS2304: Cannot find name 'SelectEvent'`
当我尝试时:
import {SelectEvent} from 'ol/interaction';
我得到:
TS2305: Module '"../../../node_modules/@types/ol/interaction"' has no exported member 'SelectEvent'.
开放层 - 我的 package.json
的相关部分是:
$ npm ls --depth=0 | grep -i ol | grep -v polyfill
├── @siedlerchr/types-ol-ext@1.0.0 (git+https://github.com/Siedlerchr/types-ol-ext.git#ec995982b2ba7aa4d415e67a350ec4b9f841ea37)
├── @types/ol@6.4.2
├── ol@6.4.3
├── ol-ext@3.1.15
搜索我发现的 SelectEvent
类型:
node_modules/@types/ol/interaction/Select.d.ts:declare class SelectEvent extends BaseEvent {
..但我不清楚如何导入此声明(而且它似乎甚至没有开始导出)。
正如您的 grepping 指出的那样:
node_modules/@types/ol/interaction/Select.d.ts:declare class SelectEvent extends BaseEvent
在node_modules/@types/ol/interaction/Select.d.ts
导出:
export class SelectEvent extends Event {
constructor(type: SelectEventType, selected: Feature[],deselected: Feature[], mapBrowserEvent: MapBrowserEvent);
deselected: Feature[];
mapBrowserEvent: MapBrowserEvent;
selected: Feature[];
}
所以你只需要直接从那里导入它,就像这样:
import { SelectEvent } from "ol/interaction/Select";
这应该可以解决您的问题。
顺便说一句,在另一个堆栈交换中也有出色的支持 community 专门针对所有类型的空间软件工程问题。