如何在 Ionic 2 typescript 应用程序上使用没有类型定义的 javascript 库?
Posted
技术标签:
【中文标题】如何在 Ionic 2 typescript 应用程序上使用没有类型定义的 javascript 库?【英文标题】:How to use a javascript library without type definition on Ionic 2 typescript app? 【发布时间】:2017-12-19 12:24:10 【问题描述】:我正在尝试在我的 ionic 2 typescript 应用程序上使用 Jquery Bracket 库。但是,该库没有类型定义。因此,我尝试以传统方式使用它。我将库的 js 和 CSS 文件放入我的 src/assets 文件夹中,并将必要的标签添加到我的 src/index.html 文件中。最后,我在我的打字稿文件中声明了一个变量,并尝试按照图书馆网站上的示例中的建议使用它。
import Component from '@angular/core';
import NavController from 'ionic-angular';
import * as $ from 'jquery'
declare var Options: any;
@Component(
selector: 'page-tournament-schedule',
templateUrl: 'tournament-schedule.html'
)
export class TournamentSchedulePage
constructor(public navCtrl: NavController)
ionViewDidLoad()
console.log('Hello TournamentSchedule Page');
this.getBrackets();
getBrackets()
var singleElimination =
"teams": [ // Matchups
["Team 1", "Team 2"], // First match
["Team 3", "Team 4"] // Second match
],
"results": [ // List of brackets (single elimination, so only one bracket)
[ // List of rounds in bracket
[ // First round in this bracket
[1, 2], // Team 1 vs Team 2
[3, 4] // Team 3 vs Team 4
],
[ // Second (final) round in single elimination bracket
[5, 6], // Match for first place
[7, 8] // Match for 3rd place
]
]
]
$('.demo').Options.bracket(
init: singleElimination
);
但是,它给了我以下错误
无法读取未定义的属性“括号”
【问题讨论】:
您从哪里获得选项?我在文档中找不到它,我认为您的问题与类型定义无关,只是您的 $('.demo').Options 未定义。顺便说一句,如果您愿意,可以为该库添加自定义类型你的项目。 我试过了,就像支架一样,它也不起作用@AlexanderTuniev 有同样的错误? @AlexanderTuniev 说括号没有定义 【参考方案1】:试试下面的。 创建一个 ts 文件,将其命名为 customTyping.d.ts 或类似名称,添加以下内容,
interface JQuery
brackets?: any;
然后将该文件包含在 tsconfig.json 中
"include": [
"...",
"...",
"pathto/customTypings.d.ts"
]
这样您将在 JQuery 中定义括号的类型。让我知道这是否有帮助。
【讨论】:
这样做之后,我需要再次声明一个变量还是可以像文档中那样使用它? 我像在文档中一样使用它,它说括号不是函数 你是如何在你的项目中包含那个库的?,也许它不可用? 我通过 npm 安装它,然后将 js 和 css 文件放入 src/assets 文件夹,然后将标签包含到我的 src/index.html 文件中 看看这个,netbasal.com/…以上是关于如何在 Ionic 2 typescript 应用程序上使用没有类型定义的 javascript 库?的主要内容,如果未能解决你的问题,请参考以下文章
在 Ionic 2 中使用第三方 cordova 插件和 TypeScript
使用 ionic 2 而不是 typescript 应用程序创建一个 javascript starter 应用程序
如何在使用 Typescript 的 Ionic App 上集成 API.AI?
使用 Typescript 的 Ionic 1 应用程序中的 Cordova 插件