打字稿编译时错误
Typescript compile time error
如何摆脱这个编译时打字稿错误?
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): error TS2339: Property 'default' does not exist on type '{ (options?: Options): Ajv; new (options?: Options): Ajv; }'.
npm ERR! Test failed. See above for more details.
javascript 代码 运行 没有错误,但打字稿抱怨,它阻止我 运行 我的单元测试。
这与打字无关。由于导入问题,我通过调用 default
使用 Ajv 库。有关原因的详细信息,请参阅 .
我认为有一些小技巧可以消除这个打字稿编译时错误,不是吗?
.default
是 ES6 兼容的,所以你应该做一个简单的导入:
import Ajv from "ajv";
否则作为旧版导入:
import Ajv = require("ajv");
那就直接用吧:new Ajv({ allErrors: true });
如何摆脱这个编译时打字稿错误?
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): error TS2339: Property 'default' does not exist on type '{ (options?: Options): Ajv; new (options?: Options): Ajv; }'. npm ERR! Test failed. See above for more details.
javascript 代码 运行 没有错误,但打字稿抱怨,它阻止我 运行 我的单元测试。
这与打字无关。由于导入问题,我通过调用 default
使用 Ajv 库。有关原因的详细信息,请参阅
我认为有一些小技巧可以消除这个打字稿编译时错误,不是吗?
.default
是 ES6 兼容的,所以你应该做一个简单的导入:
import Ajv from "ajv";
否则作为旧版导入:
import Ajv = require("ajv");
那就直接用吧:new Ajv({ allErrors: true });