我有一个outstanding PR,可以将fill-extrusion-vertical-gradient
属性添加到DefinitelyTyped中的Mapbox GL JS的FillExtrusionPaint
接口中。但是与此同时,我想在我的项目中增加该定义,以便可以避免在不使用any
的情况下进行类型检查错误。
这是我的代码的一个版本:
import * as mapboxgl from 'mapbox-gl';
const foo: mapboxgl.FillExtrusionPaint = {
'fill-extrusion-opacity': 0.75,
'fill-extrusion-vertical-gradient': false,
};
这会产生错误,因为node_modules/@types/mapbox-gl/index.d.ts
中缺少后一个属性:
@types/mapbox-gl/index.d.ts
的结构如下:
/// <reference types="geojson" />
export = mapboxgl;
export as namespace mapboxgl;
declare namespace mapboxgl {
// ...
export interface FillExtrusionPaint {
'fill-extrusion-opacity'?: number | Expression;
'fill-extrusion-opacity-transition'?: Transition;
'fill-extrusion-color'?: string | StyleFunction | Expression;
// ...
}
}
我在项目declarations/mapbox.augment.d.ts
中创建了一个文件,内容如下:
/// <reference types="mapbox-gl" />
declare namespace mapboxgl {
interface FillExtrusionPaint {
'fill-extrusion-vertical-gradient'?: boolean;
}
}
但这似乎没有效果。我犯了同样的错误。另一方面,如果我将declare namespace mapboxgl
更改为module "mapbox-gl"
,则会出现错误:我会抱怨旧资产,而不是新资产。似乎该模块正在被替换而不是被扩充。
如何扩展此界面?