【发布时间】:2018-05-29 06:59:46
【问题描述】:
我正在尝试使用@types/googlemaps 类型定义文件。
代码看起来像
declare namespace google.maps {
/***** Map *****/
export class Map extends MVCObject {
constructor(mapDiv: Element|null, opts?: MapOptions);
fitBounds(bounds: LatLngBounds|LatLngBoundsLiteral): void;
...
...
overlayMapTypes: MVCArray<MapType>;
}
export interface MapOptions {
backgroundColor?: string;
disableDoubleClickZoom?: boolean;
draggable?: boolean;
...
当我尝试在我的项目中使用这种类型定义时,就像这样
import * as google from 'googlemaps';
我得到一个编译错误说
Error:(2, 25) TS2306:File 'C:/Users/CodyB/musicappproj/src/node_modules/@types/googlemaps/index.d.ts' is not a module.
为什么它不认为这个类型定义文件是一个模块? 我用错了吗?定义文件错了吗?
【问题讨论】:
-
typescriptlang.org/docs/handbook/declaration-files/… 它必须是全局声明而不是模块.. 尝试使用
google.maps.Map.. 如果这不起作用,请尝试将/// <reference types="google" />放在文件顶部 -
我在尝试使用@types/jest 定义的类型来输入 testdouble-jest 库时也遇到了这个问题。我尝试在定义文件(testdouble-jest.d.ts)中添加 /// 指令以及所有导入方式,但它似乎总是解决任何问题。有什么想法可以继续吗?
-
在单独的问题中添加了更多详细信息:stackoverflow.com/questions/55961831/…
标签: typescript namespaces typescript-definitions