我正在尝试创建一个描述文件以使用带有打字稿的javascript库。
目前我正在尝试遵循这些指南:TypeScript Official website和Medium guide to migrate to 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;
}
但现在我不知道如何先行,而且我无法找到一个好的教程或示例如何继续。
有人可以给我一些关于如何处理的提示吗?
谢谢!
答案 0 :(得分:0)
我可能会忽略打字稿错误而不是创建d.ts文件。
所以,你通过npm:
安装leaflet-pulse-iconStrLen $1 "$2"
IntOp $1 $1 + 1 ; Add \0 terminator
!if "${NSIS_CHAR_SIZE}" > 1
IntOp $1 $1 * ${NSIS_CHAR_SIZE}
!endif
DetailPrint "$2 is $1 bytes"
...并将其包含在您的组件中:
npm install leaflet-pulse-icon
为了避免错误,只需让TypeScript忽略一段时间的打字。所以,而不是:
import 'leaflet-pulse-icon';
您应该使用:
let pulsingIcon = L.icon.pulse({iconSize:[20,20],color:'red'});
...使用L作为"任何类型"变量
当然,TypeScript不应该没有类型(!),但有时,我发现使用":any"来绕过一些错误很方便。方式。