查找有关如何从Javascript库生成.d.ts文件的文档

时间:2013-08-08 20:55:13

标签: typescript

我最近接触过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);

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

2 个答案:

答案 0 :(得分:6)

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

       /// <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;
    }

您可能需要为解决方案更新相应的参考路径。

答案 1 :(得分:2)

我前一段时间写了article on writing TypeScript definitions,希望能帮助你开始。

第一阶段是检查某人是否已在Definitely Typed上创建了定义。

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