How to use JQuery.Datatable extensions with Typescript?: 不可分配给 'Settings' 类型的参数
How to use JQuery.Datatable extensions with Typescript?: Not Assignable to parameter of type 'Settings'
我看到了 问题,但在我的项目中找不到旧 JQuery.Datatable 类型文件的证据,所以我不知道我的问题是从哪里来的。我没有使用 Nuget,而是使用 npm。我不知道是否还有其他方法可以引用该类型,或者 .DataTable({responsive: true})
调用的参数是否有不同的语法。
Error TS2345 (TS) Argument of type '{ responsive: boolean; }' is not assignable to parameter of type 'Settings'.
Object literal may only specify known properties, and 'responsive' does not exist in type 'Settings'.
package.json:
"devDependencies": {
"@types/datatables.net": "^1.10.8",
"@types/jquery": "^3.2.16",
"@types/knockout": "^3.4.46",
"@types/knockout.mapping": "^2.0.30",
"@types/knockout.validation": "0.0.35",
"@types/requirejs": "^2.1.31",
"@types/underscore": "^1.8.5",
"css-loader": "^0.28.7",
"datatables-bootstrap3-plugin": "0.5.0",
"datatables-epresponsive": "0.0.3",
"datatables.net": "^1.10.16",
"datatables.net-dt": "^1.10.16",
fooViewModel.ts
import * as ko from "knockout"
import * as $ from "jquery"
import "datatables.net";
import "datatables-epresponsive";
import "datatables.net-dt";
export class FooViewModel {
constructor() {
super();
this.instantiateLocalObjects();
if (this.containerIsLoaded()) {
this.onPageIsActive();
$("#employeeTable").DataTable({ responsive: true } );
}
}
Update: It seems that the problem is specific to trying to use
JQuery.Datatable Extensions (e.g. responsive and select). For example
this throws no errors:
$("#employeeTable").DataTable({
"paging": false,
"ordering": false,
"info": false } );
事实证明,实际上每个扩展 和 都有类型文件,我安装 datatables-epresponsive
以为它是 datatables-responsive
。
我不得不 运行:
npm install --save datatables.responsive.typings
npm install datatables.net-responsive
我也在尝试使用 select 并且需要这个:
npm install --save @types/datatables.net-select
我看到了 .DataTable({responsive: true})
调用的参数是否有不同的语法。
Error TS2345 (TS) Argument of type '{ responsive: boolean; }' is not assignable to parameter of type 'Settings'.
Object literal may only specify known properties, and 'responsive' does not exist in type 'Settings'.
package.json:
"devDependencies": {
"@types/datatables.net": "^1.10.8",
"@types/jquery": "^3.2.16",
"@types/knockout": "^3.4.46",
"@types/knockout.mapping": "^2.0.30",
"@types/knockout.validation": "0.0.35",
"@types/requirejs": "^2.1.31",
"@types/underscore": "^1.8.5",
"css-loader": "^0.28.7",
"datatables-bootstrap3-plugin": "0.5.0",
"datatables-epresponsive": "0.0.3",
"datatables.net": "^1.10.16",
"datatables.net-dt": "^1.10.16",
fooViewModel.ts
import * as ko from "knockout"
import * as $ from "jquery"
import "datatables.net";
import "datatables-epresponsive";
import "datatables.net-dt";
export class FooViewModel {
constructor() {
super();
this.instantiateLocalObjects();
if (this.containerIsLoaded()) {
this.onPageIsActive();
$("#employeeTable").DataTable({ responsive: true } );
}
}
Update: It seems that the problem is specific to trying to use JQuery.Datatable Extensions (e.g. responsive and select). For example this throws no errors:
$("#employeeTable").DataTable({
"paging": false,
"ordering": false,
"info": false } );
事实证明,实际上每个扩展 和 都有类型文件,我安装 datatables-epresponsive
以为它是 datatables-responsive
。
我不得不 运行:
npm install --save datatables.responsive.typings
npm install datatables.net-responsive
我也在尝试使用 select 并且需要这个:
npm install --save @types/datatables.net-select