Ошибка TS2339: свойство 'modal' не существует в типе 'JQuery'

Я использую Typescript с AngularJS. У меня проблема с модалами, использующими типизированное определение библиотеки jQuery. Я получаю следующую ошибку: "ошибка TS2339: свойство" modal "не существует в типе" JQuery ". '

Версия: библиотека jQuery, версия 1.10.x/2.0.x Определения: https://github.com/borisyankov/DefinitelyTyped

код

$scope.delete = function (id) {
  Photo.get({id: id}, function(result) {
     $scope.photo = result;
     $('#deletePhotoConfirmation').modal('show');// error line 
  });
};

Я ссылаюсь на jquery.d.ts в angular.d.ts

<reference path="../jquery/jquery.d.ts" />

и мой глобальный ссылочный файл поставщика выглядит так:

<reference path='../vendor/types/angular/angular.d.ts' />
<reference path='../vendor/types/angular/angular-mocks.d.ts' />
<reference path='../vendor/types/jasmine/jasmine.d.ts' />

Ответ 1

с более новыми версиями typescript ( > v2, я считаю):

npm install -D @types/bootstrap

Ответ 2

Ваша проблема вызвана отсутствием свойства с именем modal в файле jquery.d.ts.

Если вы уверены, что эта работа в чистом JS, вы можете обманывать ее так:

$scope.delete = function (id) {
  Photo.get({id: id}, function(result) {
     $scope.photo = result;
     (<any>$('#deletePhotoConfirmation')).modal('show');
  });
};

Кроме того, вы можете найти дополнительный файл d.ts, где эта опция уже определена.

Попробуйте рассмотреть эту библиотеку, у которой уже есть опция modal

Удачи!

Ответ 3

Попробуйте установить наборы для Bootstrap

typings install --global --save dt~bootstrap

Ответ 4

это работа для меня, я добавляю в первый ряд:
declare var $ :any;
этот объявить тип $ any,

Ответ 5

В моем случае мне пришлось использовать

npm install -D @types/bootstrap

а потом мне пришлось импортировать бутстрап

import * as bootstrap from 'bootstrap';

но самым важным шагом было удалить jquery

import * as $ from 'jquery';

иначе это давало мне эту ошибку:

Ошибка типа: $ (...). Модальная не является функцией

Ответ 6

Просто добавь

import * as bootstrap from "bootstrap";
import * as $ from "jquery";

в вашем app.module.ts

И установить эти пакеты

npm install @types/jquery --save-dev

npm install @types/bootstrap --save-dev