angular - Hur man åtgärdar skrivfel i JavaScript-bibliotek?
Jag använder Leaflet-biblioteket (http://leafletjs.com) i ett TypeScript-projekt.
Jag visar en markör på kartan som är konfigurerad med alternativ: http://leafletjs.com/reference-1.3.0.html#marker-l-marker
Jag försöker använda det här biblioteket i mitt projekt: https://github.com/bbecquet/Leaflet.RotatedMarker
Jag försöker lägga till fler alternativ till det andra argumentet i Marker men jag får TypeScript-fel:
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'
Jag försöker skapa ett typings-script eller en fil för att låta mig göra det.
/// <reference types="leaflet" />
declare module L {
export interface MarkerOptions {
rotationAngle: number;
rotationOrigin: string;
}
}
Kan vara något liknande detta: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/leaflet/index.d.ts#L1470
Vad saknar jag för att få detta att fungera?
Hur man skapar egna typdefinitioner för JavaScript-kod eller tredjepartsbibliotek som inte tillhandahåller typdefinitioner direkt?
Här är ett MCVE: https://github.com/badis/typescript-stackoverflow-question
Svar #1
Du måste installera typer:
@types/leaflet-rotatedmarker
Inkludera också biblioteken i din komponent:
import L from 'leaflet';
import 'leaflet-rotatedmarker';
Här är ett fungerande projekt utan stavfel:
https://stackblitz.com/edit/angular-bee8jg
