更新
不需要导入。相反,我需要在文件的顶部添加一个引用。所以我的WebAPI.js的第一行应该是/// <reference path ="../typings/jquery/jquery.d.ts"/>
而不是import { $ } from '../jquery-3.1.1';
我正在尝试导入jQuery以在Typescript文件中使用,但我在尝试任何操作时都收到了各种错误。我遵循了here和here的解决方案,但没有任何运气。
tsconfig.json
{
"compilerOptions": {
"removeComments": true,
"preserveConstEnums": true,
"out": "Scripts/CCSEQ.Library.js",
"module": "amd",
"sourceMap": true,
"target": "es5",
"allowJs": true
}
WebAPI.js
import { $ } from '../jquery-3.1.1';
export class ExpenseTransaction extends APIBase {
constructor() {
super();
}
Get(): void {
let expenses: Array<Model.ExpenseTransaction>;
let self = this;
$.ajax({
url: this.Connection,
type: "GET",
contentType: "application/json",
dataType: "json",
success: function (data: any): void {
expenses = self.ConvertToEntity(data.value);
},
error: function (data: any): void { console.log(data.status); }
});
};
}
我也尝试过import * as $ from '../jquery.3.1.1'
错误
Module jquery-3.1.1 has no exported member $
Property ajax does not exist on type (selector: any, context: any) => any
发布于 2019-02-08 22:57:31
Tim使用reference编译器指令的解决方案是有效的,但是现在有了一种更简单的方法。
在tsconfig.json中,如果设置了typeRoots,则根本不需要在.ts文件中执行任何操作。TypeScript会为您完成这项工作。
它是如何工作的?
在我的解决方案中,我通过npm引入所有的@类型,因此这些类型被放在./node_modules/@type中。我还在./@types上手工创建了一些类型。
在我的tsconfig.json中,我添加了:
"compilerOptions": {
// lots of other config here
"typeRoots": [
"./node_modules/@types",
"./@types"
]
}
现在我的所有类型都被编译器自动发现和使用了,所以没有必要为引用标签而烦恼!
结束语...
我应该注意到,如果您这样做并尝试显式导入jquery,它将失败,并且您将感到困惑。我当然是。
发布于 2022-02-08 14:42:06
es5
导入非常简单,如下所示:
import * as $ from 'jquery';
但前提是我们必须安装相关的.d.ts
文件:
npm install @types/jquery --save-dev
es6
与上面相同,但如果您希望能够使用"$
“作为函数,以侦听文档就绪事件(如"$(function () { ... })
"),则继续阅读。
首先,在tsconfig.json
文件中,执行如下操作:
{
"compilerOptions": {
"esModuleInterop": true
}
}
然后导入时不带"* as
“部分,如:
import $ from 'jquery';
发布于 2018-09-20 20:00:05
尝试用declare let $:any替换您的导入;
https://stackoverflow.com/questions/43783307
复制相似问题