我有一个传单插件,我正在写,我想附加到全局L
对象。它将一个对象MyPlugin
附加到全局的L
上,并且在L.MyPlugin
上可以使用各种属性和方法。其中一个属性实际上是一个类,称为SpecialLayer
。我正在为插件编写我的类型声明文件,我不确定如何包含它。
import L from 'leaflet';
import { ConfigOptions } from './types';
import SpecialLayer from './SpecialLayer';
declare module 'leaflet' {
export namespace MyPlugin {
function someFunction(something: string): string;
function anotherFunction(userConfig: Partial<ConfigOptions>): ConfigOptions;
const _config: ConfigOptions;
const _cache: {};
}
}
我不知道如何在这些函数和const之间附加一个类,这就变成了typeof SpecialLayer
。以下是我尝试过的一些不奏效的方法。export namespace MyPlugin
块内:
class SpecialLayer = SpecialLayer; // error: '{' expected.
class SpecialLayer {} // doesn't bring type definitions from SpecialLayer into namespace?
我如何把SpecialLayer
到L.MyPlugin命名空间,同时重用所有现有的typescript定义从外部定义的SpecialLayer
类?
import { foo as _foo } from "./foo";
export namespace abc {
export let foo=_foo;
export type foo=_foo;
}