[英]Typescript imports of submodules not found errors for mapbox-sdk-js
I've stumbled across a strange behavior in typescript imports when using @mapbox/mapbox-sdk
.使用
@mapbox/mapbox-sdk
时,我在 typescript 导入中偶然发现了一个奇怪的行为。 I've installed both @mapbox/mapbox-sdk
and @types/mapbox__mapbox-sdk
.我已经安装了
@mapbox/mapbox-sdk
和@types/mapbox__mapbox-sdk
。 The code itself works.代码本身有效。 The issue is strictly the typing.
问题完全是打字。
First I tried the following imports:首先我尝试了以下导入:
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';
When I do this, I get 3 similar errors for these 3 imports当我这样做时,对于这 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)
Next I tried to just import the base mapbox library.接下来我尝试只导入基础 mapbox 库。
import * as _ from '@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';
Obviously this doesnt work (theres no top level module in the @mapbox/mapbox-sdk
package) BUT miraculously Typescript is suddenly able to find the typings for MapiRequest
, Geocoding
, and Matrix
, and the error is on that first line as显然这不起作用(
@mapbox/mapbox-sdk
包中没有顶级模块)但奇迹般地 Typescript 突然能够找到MapiRequest
、 Geocoding
和Matrix
的类型,并且错误出现在第一行
File '<path>/node_modules/@types/mapbox__mapbox-sdk/index.d.ts' is not a module.ts(2306)
1- What is happening here? 1-这里发生了什么? 2- How do I fix it?
2-我该如何解决?
You need to install @types/mapbox__mapbox-sdk
for types and add the types in tsconfig.json
:您需要为类型安装
@types/mapbox__mapbox-sdk
并在tsconfig.json
中添加类型:
{
"compilerOptions": {
...
"types": ["@types/mapbox__mapbox-sdk"],
...
}
}
Check this:检查这个:
@mapbox/mapbox-sdk
version is equal to @types/mapbox__mapbox-sdk
version @mapbox/mapbox-sdk
版本等于@types/mapbox__mapbox-sdk
版本import mbxClient from '@mapbox/mapbox-sdk/lib/classes/mapi-client'
import mbxClient from '@mapbox/mapbox-sdk/lib/classes/mapi-client'
的 api 导入
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.