我正在使用带有AngularJS的Typescript。我使用jQuery库的类型定义的模态有问题。我收到以下错误:'错误TS2339:类型'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' />
使用较新版本的打字稿(> v2我相信):
npm install -D @types/bootstrap
编辑:正如hughjdavey在评论中所说,你还需要以下导入行:import * as bootstrap from“bootstrap”;从'jquery'导入*为$;
您的问题是由于modal
文件中缺少名为jquery.d.ts的属性引起的。
如果你确定这个工作在纯JS中你可以像这样欺骗它
$scope.delete = function (id) {
Photo.get({id: id}, function(result) {
$scope.photo = result;
(<any>$('#deletePhotoConfirmation')).modal('show');
});
};
此外,您还可以找到已定义此选项的其他d.ts
文件。
尝试考虑已经有this选项的modal
库
祝好运!
这项工作对我来说,我在第一行添加:
declare var $ :any;
这声明$
类型是any
,
尝试安装Bootstrap DefinitelyTyped的类型
typings install --global --save dt~bootstrap
在我的情况下,我不得不使用
npm install -D @types/bootstrap
然后我不得不导入bootstrap
import * as bootstrap from 'bootstrap';
但最重要的一步是删除jquery
import * as $ from 'jquery';
否则它给了我这个错误:
TypeError:$(...)。modal不是函数
只需添加
import * as bootstrap from "bootstrap";
import * as $ from "jquery";
在你的app.module.ts
并安装这些包
npm install @ types / jquery --save-dev
npm install @ types / bootstrap --save-dev