4

我最近接触过 TypeScript,但在文档方面有点挣扎。似乎是相当多的草根方法。案例和要点。

获取 JS 库的定义。

首先,如果您从 NuGet 获取 js 文件,那么 nuget 包的一部分应该是 d.ts 文件。
其次,我一直找不到任何关于如何创建定义文件的具体文档。

我想要包含 MarkerWithLabel 库,它是 google.maps api 库的扩展。

是否有人愿意共享 .d.ts 文件,或者我在哪里可以获得有关如何从 JS 库创建/生成文件的文档。

编辑:我正在寻找这个 d.ts 文件的库是MarkerWithLabel

这是我根据规范文档开始构建的 .d.ts 文件,但这似乎根本不起作用。

     /// <reference path="google.maps.d.ts"/>


     declare class MarkerWithLabelOptions {
         crossImage: string;
         handCursor: string;
         labelAnchor: google.maps.Point;
         labelClass: string;
         labelContent: any;
         labelInBackground: boolean;
         labelStyle: any;
         labelVisible: boolean;
         optimized: boolean;
         raiseOnDrag: boolean;

     }

     declare class MarkerWithLabel extends google.maps.Marker{
         constructor(opt?: MarkerWithLabelOptions);
     }

实施如下:

 var _mwlo =new MarkerWithLabelOptions({
 position: this.CenterPoint.toLatLng()
    , draggable: true
    , map: this._map
    , labelAnchor: new google.maps.Point(22, 0)
    , labelStyle: {opacity: 1.0}
 });

 var _mwl = new MarkerWithLabel(_mwlo);

我收到一个错误,它说它找不到与提供的参数匹配的方法。

4

2 回答 2

6

我最终解决了这个问题,并为其他人提供了一个工作 d.ts。这可能是理想的,但它似乎工作。¯\_(ツ)_/¯

       /// <reference path="google.maps.d.ts"/>


    declare class MarkerWithLabelOptions extends MarkerWithLabel {
        constructor();
        crossImage: string;
        handCursor: string;
        labelAnchor: any;
        labelClass: string;
        labelContent: any;
        labelInBackground: boolean;
        labelStyle: any;
        labelVisible: boolean;
        optimized: boolean;
        raiseOnDrag: boolean;
        position: any;

    }

    declare class MarkerWithLabel extends google.maps.Marker {
        constructor(opts?:any);
        crossImage: string;
        handCursor: string;
        labelAnchor: any;
        labelClass: string;
        labelContent: any;
        labelInBackground: boolean;
        labelStyle: any;
        labelVisible: boolean;
        optimized: boolean;
        raiseOnDrag: boolean;
    }

您可能需要为您的解决方案适当地更新参考路径。

于 2013-08-09T20:51:55.553 回答
2

不久前,我写了一篇关于编写 TypeScript 定义的文章,希望能帮助您入门。

第一阶段是检查是否有人已经在Definitive Typed上创建了定义。

您不能从 JavaScript 自动生成定义 - 尽管可能会推断出某些类型 - 因为定义是一个附加过程(即添加 JavaScript 中不存在的信息),但是有一些快速入门的方法文章中详细介绍。

于 2013-08-08T21:34:07.880 回答