【问题标题】:How to use a javascript library without type definition on Ionic 2 typescript app?如何在 Ionic 2 typescript 应用程序上使用没有类型定义的 javascript 库?
【发布时间】: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 说括号没有定义

标签: javascript jquery typescript ionic2


【解决方案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/…
猜你喜欢
  • 1970-01-01
  • 2016-11-04
  • 2017-06-08
  • 2017-01-12
  • 2016-10-23
  • 2017-02-13
  • 2016-05-12
  • 2016-08-28
  • 1970-01-01
相关资源
最近更新 更多