在打字稿中导入 javascript 库时出错

Posted

技术标签:

【中文标题】在打字稿中导入 javascript 库时出错【英文标题】:Error import javascript library in typescript 【发布时间】:2018-10-22 12:23:08 【问题描述】:

我想导入 javascript 库。那是赤田图书馆。我像这样在互联网上的建议中导入:

import * as akarata from 'akarata/dist';

import * as akarata from 'akarata';

还是会出现这样的错误

尝试 npm install @types/akarata(如果存在)或添加新的 包含声明模块“akarata”的声明 (.d.ts) 文件;

但我试过了,什么也没发生。

奇怪的是。只是首先我输入 ng serve ,因为我使用角度,所以出现错误。在我对我的项目进行了一些更改之后,我保存了它。我仍然收到错误,但我的项目有效。这个库也很好用。

有人知道为什么会这样吗?

【问题讨论】:

【参考方案1】:

TypeScript 是 JavaScript 的类型化超集,可编译为纯 JavaScript。 TypeScript 有自己的语法、函数和变量可以定义类型,如果你想使用外部库,例如akarata,你需要为 TypeScript 声明类型定义。一些库包括类型文件,你不需要为它们安装 TypeScript 的类型目标。但如果库没有 .d.ts 文件,则需要安装它。Type Search

因为您的库在 TypeScript 和 Angular 中没有类型定义 (*.d.ts)

解决方案: 如果src/typings.d.ts 不存在则创建,否则,打开它,并将你的包添加到其中:

declare module 'akarata'

然后导入

import * as akarata from 'akarata';

【讨论】:

很高兴我能帮上忙:) 这句话的主语是什么? “如果 src/typings.d.ts 不存在则创建”?我不明白这是什么意思 @netalex https://basarat.gitbooks.io/typescript/docs/types/ambient/intro.html 好吧@Vikas 坦克链接,但问题仍然存在:“如果 src/typings.d.ts 不存在则创建”这句话的主题是什么?是“src/typings.d.ts”吗?【参考方案2】:

在您的 angular-cli.json 文件中。

"scripts": [
    "../path" 
 ];

然后添加typings.d.ts

declare var akarata:any;

【讨论】:

以上是关于在打字稿中导入 javascript 库时出错的主要内容,如果未能解决你的问题,请参考以下文章

在打字稿Angular 5中导入json文件

json 尝试在打字稿中导入外部模块

如何在打字稿monorepo中导入本地包

无法在打字稿中导入 svg 文件

如何在打字稿中导入 react-cookie

Angular 6和打字稿在组件中导入具有属性的类