此行适用于使用angular2 RC4
的项目 import * as mapTypes from '../../../../node_modules/angular2-google-maps/core/services/google-maps-types.d.ts';
发生了什么?
现在我正在尝试使用RC6的新种子文件,同一行给我这个错误
error TS2691: An import path cannot end with a '.d.ts' extension. Consider importing '../../../../node_modules/angular2-google-maps/core/services/google-maps-types' instead.
但如果我做出建议的更改,我会
Cannot find module '../../../../node_modules/angular2-google-maps/core/services/google-maps-types'
.d.ts
文件如下所示:
/**
* angular2-google-maps - Angular 2 components for Google Maps
* @version v0.12.0
* @link https://github.com/SebastianM/angular2-google-maps#readme
* @license MIT
*/
export declare var google: any;
export interface GoogleMap {
constructor(el: HTMLElement, opts?: MapOptions): void;
panTo(latLng: LatLng | LatLngLiteral): void;
setZoom(zoom: number): void;
addListener(eventName: string, fn: Function): void;
getCenter(): LatLng;
setCenter(latLng: LatLng | LatLngLiteral): void;
getBounds(): LatLngBounds;
getZoom(): number;
setOptions(options: MapOptions): void;
}
...
,匹配的.ts
文件看起来像
/**
* angular2-google-maps - Angular 2 components for Google Maps
* @version v0.12.0
* @link https://github.com/SebastianM/angular2-google-maps#readme
* @license MIT
*/
"use strict";
//# sourceMappingURL=google-maps-types.js.map
注意:这个软件包的更新版本与RC6相匹配,但我应该能够将其至少在TS中编译
答案 0 :(得分:1)
如果您使用的是最新版本的TypeScript,并且输入定义嵌入在您的npm包中,那么您只需从模块导入:
import { GoogleMap } from 'angular2-google-maps/core/services/google-maps-types'
即使它是一个界面。
事实上,您正在从core/services/googles-maps-types.js
导入定义,但此文件仅用于提供其.d.ts
文件中的关联定义。
它的工作方式就像是直接从.ts
文件导入一样,但是当你在npm模块中时,它们会将定义文件嵌入到允许定义导入中。
答案 1 :(得分:0)
通常在TypeScript中,您可以在.ts文件的顶部添加对定义文件的引用,如下所示:
/// <reference path="../../../../node_modules/angular2-google-maps/core/services/google-maps-types.d.ts"
之后,您可以导入定义文件中的内容。