Javascript 类型脚本编译时错误
如何消除这个编译时类型脚本错误Javascript 类型脚本编译时错误,javascript,angular,typescript,ajv,Javascript,Angular,Typescript,Ajv,如何消除这个编译时类型脚本错误 import * as Ajv from "ajv"; export class ValidateJsonService { validateJson(json, schema) { let ajv = new Ajv.default({ allErrors: true }); if (!ajv.validate(schema, json)) { throw new Error("JSON does
import * as Ajv from "ajv";
export class ValidateJsonService {
validateJson(json, schema) {
let ajv = new Ajv.default({ allErrors: true });
if (!ajv.validate(schema, json)) {
throw new Error("JSON does not conform to schema: " + ajv.errorsText())
}
}
}
app/services/jsonSchemaValidation.service.ts(8,27):错误TS2339:类型“{(选项?:选项):Ajv;新(选项?:选项):Ajv;}”上不存在属性“default”。
npm错误!测试失败。请参见上文了解更多详细信息
javascript代码运行时没有错误,但typescript发出了抱怨,它阻止了我运行单元测试
这与打字无关。由于导入问题,我正在通过调用default
使用Ajv库。有关原因的详细信息,请参阅
我认为有一些小技巧可以消除这个typescript编译时错误,不是吗
。默认值
与ES6兼容,因此您应该执行普通导入:
import Ajv from "ajv";
否则,将导入为遗留:
import Ajv = require("ajv");
然后直接使用它:
newajv({allErrors:true})代码>。默认情况下
与ES6兼容,因此您应该执行普通导入:
import Ajv from "ajv";
否则,将导入为遗留:
import Ajv = require("ajv");
然后直接使用它:newajv({allErrors:true})
您指向systemjs配置中的dist/ajv.min.js
文件而不是lib/ajv.js
的原因是什么?这样做,一个简单的从“Ajv”导入Ajv
就可以了。你为什么要指向systemjs配置中的dist/Ajv.min.js
文件而不是lib/Ajv.js
?这样做,一个简单的从“Ajv”导入Ajv
就可以了。