我最近接触过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);
我得到一个错误,它说它找不到与提供的参数匹配的方法。
答案 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中不存在的信息),但有快速的方法开始详细介绍。