簡體   English   中英

JavaScript庫的.d.ts打字稿文件

[英].d.ts typescript file for a javascript library

我正在嘗試創建一個描述文件以將JavaScript庫與Typescript一起使用。

目前,我正在嘗試遵循以下指南: TypeScript官方網站遷移至Typescript的中型指南

具體來說,我正在嘗試為leaflet-icon-pulse創建一個打字稿描述文件,我認為這很容易

所以我下載了git項目,如下創建了tsconfig.json

{
"compilerOptions": {
  "outDir": "./built",
  "allowJs": true,
  "noImplicitAny": true,
  "strictNullChecks": true,
  "target": "es5",
  "module": "commonjs"
},
"include": [
  "./src/**/*"
],
"exclude": [
  "node_modules"
]
}

然后,我嘗試將文件L.Icon.Pulse.js轉換為L.Icon.Pulse.ts ,但是我開始收到如下錯誤:

Property X does not exists on type Y

因此,據我了解,我需要讓js保留並簡單地創建L.Icon.Pulse.d.ts文件

現在我的樣子:

import * as L from 'leaflet';
declare module 'leaflet' {
     function Pulse(options?: any): any;
}

但是現在我不知道該怎么做,也無法找到一個很好的教程或示例。

有人可以給我一些如何進行的提示嗎?

謝謝!

與其創建d.ts文件,不如繼續忽略打字稿錯誤。

因此,您可以通過npm安裝leaflet-pulse-icon:

npm install leaflet-pulse-icon

...並將其包含在組件中:

import 'leaflet-pulse-icon';

為了避免該錯誤,只需使TypeScript暫時忽略鍵入即可。

let pulsingIcon = L.icon.pulse({iconSize:[20,20],color:'red'});

您應該使用:

let pulsingIcon = (L as any).icon.pulse({iconSize:[20,20],color:'red'});

...將L用作“任何類型”變量。

當然,TypeScript不能在沒有類型(!)的情況下工作,但是偶爾,我發現使用“:any”繞過一些錯誤很方便。

暫無
暫無

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

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