Typescript MarkerCluster JS插件类型脚本定义文件创建

Typescript MarkerCluster JS插件类型脚本定义文件创建,typescript,leaflet,Typescript,Leaflet,我正在用传单画平面图。我最近在DevIntersection学习了一点TypeScript,并希望开始转换我所有的JS来使用它。幸运的是,有人已经为传单创建了定义文件,但我使用的一个插件没有(MarkerCluster) 我已经把插件编译好了(在对传单定义文件进行了一些小的添加之后),但是当我尝试使用它时,我看不到它的任何方法(参见下面的使用示例)。我还尝试从它创建一个定义文件,但它创建的是空的(使用tsc--declaration)。由于传单和插件的定义文件有点长,我上传了它们: , 用法:

我正在用传单画平面图。我最近在DevIntersection学习了一点TypeScript,并希望开始转换我所有的JS来使用它。幸运的是,有人已经为传单创建了定义文件,但我使用的一个插件没有(MarkerCluster)

我已经把插件编译好了(在对传单定义文件进行了一些小的添加之后),但是当我尝试使用它时,我看不到它的任何方法(参见下面的使用示例)。我还尝试从它创建一个定义文件,但它创建的是空的(使用tsc--declaration)。由于传单和插件的定义文件有点长,我上传了它们:

,

用法:

/// <reference path="typings/jquery/jquery.d.ts" />
/// <reference path="typings/jqueryui/jqueryui.d.ts" />
/// <reference path="typings/leaflet/leaflet.d.ts" />
/// <reference path="typings/leaflet.markercluster.ts" />

module FloorPlans
{
    export class Floor
    {
        deskMarkers : L.MarkerClusterGroup; // <-- Compile error
        peopleMarkers: L.MarkerClusterGroup; // <-- Compile error
        tileLayer: L.TileLayer;
        desks = new Object();
        people = new Object();

        constructor(public floorName: string, public floorID: number) { }

    }
}
//
/// 
/// 
/// 
模块布局图
{
出口级楼层
{

deskmarks:L.MarkerClusterGroup;//
传单.marketcluster.ts
似乎只是JavaScript代码,它不包含任何类型脚本类声明

您应该创建一个定义文件
sloop.marketcluster.d.ts
(并将原始
sloop.marketcluster
代码保留为JavaScript):


创建“类”有很多不同的约定在JavaScript中,TypeScript对其中任何一个都不了解。您在lapper.markercluster.ts中拥有的是合法的JavaScript,因此也是合法的TypeScript,但它并没有按照TypeScript的理解划分为类,这就是为什么为它生成的声明文件是空的

除非在极少数情况下,声明文件是手动创建的,这可能就是您在这里要做的。它可能会从以下内容开始:

/// <reference path="leaflet.d.ts" />
declare module L {
    export class MarkerClusterGroup extends FeatureGroup {
        initialize(options: any): void;
        addLayer(layer:ILayer):MarkerClusterGroup;
        addLayer(layer:LayerGroup):MarkerClusterGroup;
        // and so on and so forth
    }
}
//
声明模块L{
导出类MarkerClusterGroup扩展了FeatureGroup{
初始化(选项:任意):无效;
addLayer(layer:ILayer):MarkerClusterGroup;
addLayer(层:LayerGroup):MarkerClusterGroup;
//等等等等
}
}
我必须自己创建几个声明文件,经过一个简短的学习过程后,这并不难。我发现这对于开始学习(如果你正在阅读本文,请向Steve道具),然后通过示例学习definitelytyped非常有帮助


一旦您对申报文件感到满意,请记住为“温暖模糊的感觉”返回definitelytyped。

在我看来,这一贡献似乎从未发生过,因此我刚刚向提交了一份公关传单。markercluster以获得这些温暖模糊的感觉:)

拥有大多数常见选项,但如果有人添加更多(并编写更多测试!),显然会喜欢的


我遇到了同样的问题,并通过安装这些解决了问题:

$ npm i leaflet.markercluster
$ npm i --save @types/leaflet.markercluster

小麻烦,但如果您创建了一个要点来存放您的文件().@AlexDresko不知道-我下次一定会用它。谢谢!谢谢你提供的详细信息,博客条目看起来确实很有用。一旦我状态良好,我会将其回复到definitelytypedAny,你可能会对我试图为传单路径转换编写的类似类型声明发表评论?谢谢这是提前的!
$ npm i leaflet.markercluster
$ npm i --save @types/leaflet.markercluster