mar*_*st2 1 mapbox typescript definitelytyped
当使用 时,我偶然发现了打字稿导入中的奇怪行为@mapbox/mapbox-sdk。我已经安装了@mapbox/mapbox-sdk和@types/mapbox__mapbox-sdk。代码本身可以工作。问题严格来说是打字。
首先我尝试了以下导入:
import { MapiRequest } from '@mapbox/mapbox-sdk/lib/classes/mapi-request';
import Geocoding from '@mapbox/mapbox-sdk/services/geocoding';
import Matrix from '@mapbox/mapbox-sdk/services/matrix';
Run Code Online (Sandbox Code Playgroud)
当我这样做时,这 3 个导入出现 3 个类似的错误
Could not find a declaration file for module '@mapbox/mapbox-sdk/lib/classes/mapi-request'. '<path>/node_modules/@mapbox/mapbox-sdk/lib/classes/mapi-request.js' implicitly has an 'any' type.
Try `npm install @types/mapbox__mapbox-sdk` if it exists or add a new declaration (.d.ts) file containing `declare module '@mapbox/mapbox-sdk/lib/classes/mapi-request';`ts(7016)
Run Code Online (Sandbox Code Playgroud)
接下来我尝试导入基础 Mapbox 库。
Could not find a declaration file for module '@mapbox/mapbox-sdk/lib/classes/mapi-request'. '<path>/node_modules/@mapbox/mapbox-sdk/lib/classes/mapi-request.js' implicitly has an 'any' type.
Try `npm install @types/mapbox__mapbox-sdk` if it exists or add a new declaration (.d.ts) file containing `declare module '@mapbox/mapbox-sdk/lib/classes/mapi-request';`ts(7016)
Run Code Online (Sandbox Code Playgroud)
显然这不起作用(@mapbox/mapbox-sdk包中没有顶级模块),但是 Typescript 突然能够找到MapiRequest、Geocoding和的类型Matrix,并且错误出现在第一行,如下所示
File '<path>/node_modules/@types/mapbox__mapbox-sdk/index.d.ts' is not a module.ts(2306)
Run Code Online (Sandbox Code Playgroud)
1-这里发生了什么?2-我该如何修复它?
您需要安装@types/mapbox__mapbox-sdk类型并将类型添加到tsconfig.json:
{
"compilerOptions": {
...
"types": ["@types/mapbox__mapbox-sdk"],
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1122 次 |
| 最近记录: |