web-dev-qa-db-fra.com

erreur TS2339: La propriété 'modal' n'existe pas sur le type 'JQuery'

J'utilise TypeScript avec AngularJS . J'ai un problème avec les modaux qui utilisent une définition typée de la bibliothèque jQuery .L'erreur suivante: "erreur TS2339: La propriété" modal "n'existe pas sur le type" JQuery ". '

Version: bibliothèque jQuery, version 1.10.x/2.0.x Définitions: https://github.com/borisyankov/DefinitelyTyped

Code

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

Je fais référence à jquery.d.ts dans angular.d.ts

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

et mon fichier de référence fournisseur global ressemble à ceci:

<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' />
19
TomekB

avec les nouvelles versions de TypeScript (> v2 je crois): 

npm install -D @types/bootstrap
38
Tucker

Votre problème est dû au manque de propriété portant le nom modal dans le fichier jquery.d.ts .

Si vous êtes sûr que cela fonctionne en JS pur, vous pouvez tromper comme ça 

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

En outre, vous pouvez rechercher un fichier d.ts supplémentaire dans lequel cette option a déjà été définie.

Essayez de considérer this bibliothèque qui a déjà eu l'option modal

Bonne chance!

18
Oleh Dokuka

Essayez d'installer les typings pour Bootstrap DefinitelyTyped

typings install --global --save dt~bootstrap

4
gchao

Dans mon cas je devais utiliser

npm install -D @types/bootstrap

et puis j'ai dû importer bootstrap

import * as bootstrap from 'bootstrap';

mais l'étape la plus importante était de supprimer jquery

import * as $ from 'jquery';

sinon cela me donnait cette erreur:

TypeError: $ (...). Modal n'est pas une fonction

2
Zohab Ali

ce travail pour moi, j’ajoute en première ligne:
declare var $ :any;
this declare $ type est any,

1
izik f

Il suffit d'ajouter

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

dans votre app.module.ts

Et installez ces paquets

npm install @ types/jquery --save-dev

npm install @ types/bootstrap --save-dev

0
cyperpunk