SPFx 不能使用 JQuery?
SPFx can't use JQuery?
我正在使用 Yeoman 创建的 SPFx 开发一个全新的 SharePoint Web 部件,脚手架模板很好,添加 JQuery 和 JQueryUI 的 NPM 也得到不是一个问题,我在后台看到 GULP SERVE 运行 没有任何错误。
当我在 JQWebPart.ts 中添加以下行时出现问题:
import * as jQuery from 'jquery';
添加上面的行后,GULP SERVE 输出一个很长的错误列表,下面是所有错误的最后一行:
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7502,33): error TS2314: Generic type 'Callbacks<T, Function>' requires 2 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7503,36): error TS2314: Generic type 'Deferred<TR, TJ, any, TN>' requires 4 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7504,41): error TS2314: Generic type 'Event<TTarget, EventTarget, TData>' requires 3 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7505,36): error TS2314: Generic type 'Deferred<TR, TJ, any, TN>' requires 4 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7506,37): error TS2314: Generic type 'AjaxSettings<TContext, any>' requires 2 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7510,28): error TS2314: Generic type 'jqXHR<TResolve, any>' requires 2 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7511,35): error TS2314: Generic type 'Promise<TR, TJ, any, TN>' requires 4 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7517,32): error TS2314: Generic type 'PlainObject<T, any>' requires 2 type argument(s).
[16:54:06] Finished subtask 'tslint' after 3.95 s
[16:54:06] Error - 'typescript' sub task errored after 3.95 s
"TypeScript error(s) occurred."
当我尝试使用 JQuery 时,我不知道我的 Web 部件发生了什么,有没有人有任何想法???
感谢用户 Rohit Waghela,已经有一个解决方案可以解决与 SPFx 中 JQuery 相关的问题:
https://thechriskent.com/tag/sharepoint-framework/
问题是 TypeScript 和 JQuery 不兼容,所以这里的底线是:
1) 删除 JQuery: npm uninstall @types/jquery
2) 安装兼容版本:npm install @types/jquery@2.0.48 --save-dev
我正在使用 Yeoman 创建的 SPFx 开发一个全新的 SharePoint Web 部件,脚手架模板很好,添加 JQuery 和 JQueryUI 的 NPM 也得到不是一个问题,我在后台看到 GULP SERVE 运行 没有任何错误。
当我在 JQWebPart.ts 中添加以下行时出现问题:
import * as jQuery from 'jquery';
添加上面的行后,GULP SERVE 输出一个很长的错误列表,下面是所有错误的最后一行:
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7502,33): error TS2314: Generic type 'Callbacks<T, Function>' requires 2 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7503,36): error TS2314: Generic type 'Deferred<TR, TJ, any, TN>' requires 4 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7504,41): error TS2314: Generic type 'Event<TTarget, EventTarget, TData>' requires 3 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7505,36): error TS2314: Generic type 'Deferred<TR, TJ, any, TN>' requires 4 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7506,37): error TS2314: Generic type 'AjaxSettings<TContext, any>' requires 2 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7510,28): error TS2314: Generic type 'jqXHR<TResolve, any>' requires 2 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7511,35): error TS2314: Generic type 'Promise<TR, TJ, any, TN>' requires 4 type argument(s).
[16:54:06] Error - typescript - node_modules\@types\jquery\index.d.ts(7517,32): error TS2314: Generic type 'PlainObject<T, any>' requires 2 type argument(s).
[16:54:06] Finished subtask 'tslint' after 3.95 s
[16:54:06] Error - 'typescript' sub task errored after 3.95 s
"TypeScript error(s) occurred."
当我尝试使用 JQuery 时,我不知道我的 Web 部件发生了什么,有没有人有任何想法???
感谢用户 Rohit Waghela,已经有一个解决方案可以解决与 SPFx 中 JQuery 相关的问题:
https://thechriskent.com/tag/sharepoint-framework/
问题是 TypeScript 和 JQuery 不兼容,所以这里的底线是:
1) 删除 JQuery: npm uninstall @types/jquery
2) 安装兼容版本:npm install @types/jquery@2.0.48 --save-dev