使用typings在Ionic / TypeScript中导入JS库时出现编译错误

时间:2016-06-02 16:57:04

标签: typescript ionic2

我试图了解如何使用TypeScript将外部js库包含到Ionic2项目中,并且我遵循了我发现的没有成功的指令。

我对Ionic和Typescript很新,所以我猜测还有(不止)我做错了什么。我试图在我的页面中使用D3库(其他库也一样,我用D3来解释)。

这是我从示例项目开始到目前为止所做的:

ionic start mytest --v2 --ts
cd mytest
npm install d3 --save
typings install registry:dt/d3 --global --save

在页面中我导入d3如下:

import * as d3 from 'd3'

或     从' d3'

导入d3

运行应用程序并编译TypeScript时,出现错误:

TS2307: Cannot find module 'd3'.

因此,根据我的理解,看起来TS编译器无法找到该模块的类型定义文件。但是,我假设与Ionic2默认样本一起安装的打字稿系统包括类型定义文件(index.d.ts,引用 ///< reference path =" globals / d3 /index.d.ts" /> )行:

"**/*.ts",

在tsconfig.json中的FilesGlob项下。当前的编译器版本是1.8.7。我还试图在"文件"下引用同一个文件。键入tsconfig.json或

下的文件
"typings/globals/d3/index.d.ts"

但没有任何改变。我仍然得到相同的编译错误。此外,使用Atom编辑器时,库已正确拾取,成员将显示在自动完成列表中。我不确定错误是否与打字有关,或者编译器是否找不到源javascript库。

你有什么建议吗? 除了这个编译异常,我应该在www / index.html中添加d3.js文件吗?或者它是自动打包(并且我不清楚如何)到应用程序包javascript文件(可能这个问题和编译错误的原因之间有联系)?

2 个答案:

答案 0 :(得分:0)

我最近遇到了同样的问题,当我们使用打字时,有些文件需要修改。

看看这个链接,它对我非常有用:

http://x-team.com/2016/06/include-javascript-libraries-in-an-ionic-2-typescript-project/

答案 1 :(得分:0)

我有编译错误,通过npm将最新的d3版本4添加到Angular 2项目中。这也可能与Ionic 2相关。我认为有一个xhtmlrequest依赖项导致了typescript编译器问题。

我使用旧版本的d3.jd

npm install --save d3@3.5.17 

typings install dt~d3 --save --global


// in the TypeScript file

import * as d3 from 'd3';

这工作正常