簡體   English   中英

如何修復JavaScript庫的鍵入錯誤?

[英]How to fix typing errors of JavaScript Library?

我在TypeScript項目中使用Leaflet庫( http://leafletjs.com )。

我在使用選項配置的地圖上顯示標記: http : //leafletjs.com/reference-1.3.0.html#marker-l-marker

我正在嘗試在我的項目中使用此庫: https : //github.com/bbecquet/Leaflet.RotatedMarker

我正在嘗試為Marker的第二個參數添加更多選項,但出現打字稿錯誤:

ERROR in src/app/app.component.ts(61,7): error TS2345: Argument of type '{ rotationAngle: number; }' is not assignable to parameter of type 'MarkerOptions'.
  Object literal may only specify known properties, and 'rotationAngle' does not exist in type 'MarkerOptions'

我試圖創建一個打字腳本或文件來允許我這樣做。

/// <reference types="leaflet" />

declare module L {
  export interface MarkerOptions { 
    rotationAngle: number;
    rotationOrigin: string;
  }
}

可能類似於以下內容: https : //github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/leaflet/index.d.ts#L1470

使我無法進行這項工作的地方是什么?

如何為不提供輸入的JavaScript代碼或第三方庫創建自定義類型?

這是一個MCVE: https : //github.com/badis/typescript-stackoverflow-question

您必須安裝以下類型:

@types/leaflet-rotatedmarker

另外,在您的組件中包括庫:

import L from 'leaflet';
import 'leaflet-rotatedmarker';

這是一個沒有鍵入錯誤的工作項目:

https://stackblitz.com/edit/angular-bee8jg

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM