属性 'FroalaEditor' 在类型 'JQueryStatic' 上不存在 - Angular 4

Property 'FroalaEditor' does not exist on type 'JQueryStatic' - Angular 4

我正在使用 Angular 4 'FroalaEditor',它使用 'JQuery'.

我实现成功了。 现在我需要在该插件中添加自定义按钮。

我找到了以下 solution

import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import * as $ from 'jquery';

@Component({
  selector: 'app-froala-editor',
  templateUrl: './froala-editor.component.html',
  styleUrls: ['./froala-editor.component.scss'],
  encapsulation: ViewEncapsulation.None
})
export class FroalaEditorComponent implements OnInit {
  options;
  constructor() { }

  ngOnInit(){
    $.FroalaEditor.DefineIcon('alert', {NAME: 'info'});
    $.FroalaEditor.RegisterCommand('alert', {
      title: 'Hello',
      focus: false,
      undo: false,
      refreshAfterCallback: false,
      callback: function () {
        alert('Hello!');
      }
    });

    this.options={
      toolbarButtons: ['bold', 'italic', 'underline', 'paragraphFormat','alert', '|', 'insertLink', 'insertImage', 'specialCharacters', 'color', '|', 'align', 'formatOL', 'formatUL', '|', 'undo', 'redo', 'clearFormatting', 'print'],
    }
  }

}

但是我有以下错误。

Property 'FroalaEditor' does not exist on type 'JQueryStatic'.

我找到了这个 solution,但我不确定如何实现它。

有人遇到过这个问题吗?

将此添加到您的代码中:

interface JQueryStatic {
    FroalaEditor: any;
}

我在 Aurelia 上遇到了与 froala 相同的问题,我通过这样做解决了它:

$['FroalaEditor'].DefineIcon('alert', {NAME: 'info'});

对我有用的解决方案是添加 declare var $: any; 而不是 import * as $ from 'jquery'; 在使用编辑器导入组件之后。

对我来说 none 上面的答案有帮助,但我在某个地方得到了这个:

(<any>$('div#froala')).froalaEditor('html.get');

终于奏效了。所以只需包装 $

(<any>$).FroalaEditor.DefineIcon('alert', {NAME: 'info'});

代码在没有它的情况下也能正常工作,但我在 ionic 2 上,每次我这样做时都会出现错误 ionic:serve 但不是在重新加载时。我不知道为什么,但现在它不见了。