gpt4 book ai didi

reactjs - “JestSerializer”不可分配给类型为 'SnapshotSerializerPlugin' 的参数

转载 作者:行者123 更新时间:2023-12-05 04:01:58 26 4
gpt4 key购买 nike

我的 CRA 应用程序中有一个名为 setupTests.ts 的文件,它在 createSerializer() 方法上显示此警告。如果我将文件重命名为 js 文件,所有编译都很好并且测试运行。尽管如果我在 package.json 中添加 "snapshotSerializers": ["enzyme-to-json/serializer"] 作为 jest 配置,它工作正常。但我很好奇是否有办法让它在那个文件中工作。

import React from "react";
import Enzyme from "enzyme";
import Adapter from "enzyme-adapter-react-16";
import { createSerializer } from "enzyme-to-json";

expect.addSnapshotSerializer(createSerializer({mode: "deep",noKey: true}) );
Enzyme.configure({adapter: new Adapter()});

最佳答案

简短的回答是 enzyme-to-json"@types/jest" 之间的类型定义似乎有冲突,所以只需执行以下操作

//@ts-ignore
expect.addSnapshotSerializer(createSerializer({ mode: 'deep', noKey: true }));

我假设这是你的错误(我没有在问题中看到它):

(property) Options.noKey?: boolean | undefinedArgument of type 'JestSerializer' is not assignable to parameter of type >'SnapshotSerializerPlugin'.Types of property 'print' are incompatible.Type '(CommonWrapper: CommonWrapper<{}, {}, Component<{}, {}, any>>, serializer: >JestSerializer) => Json' is not assignable to type '(val: any, serialize: (val: any) => >string, indent: (str: string) => string, opts: SnapshotSerializerOptions, colors: >SnapshotSerializerColors) => string'.Types of parameters 'serializer' and 'serialize' are incompatible.Type '(val: any) => string' is missing the following properties from type >'JestSerializer': test, printts(2345)

我遇到这个问题是因为我试图在 Creact-React-App typescript 项目中使用 enzyme-to-json,我无法直接访问 jest 配置,我也不知道不想弹出。警告表明类型 JestSerializerSnapshotSerializerPlugin 不兼容。

enzyme-to-json 存储库中还有一个 Unresolved 问题,该问题已经存在一年多了,所以不确定这是否会得到解决

https://github.com/adriantoine/enzyme-to-json/issues/126

在我的例子中,我使用的每个版本都是

"@types/jest": "^24.0.25"
"enzyme-to-json": "^3.4.4",

关于reactjs - “JestSerializer”不可分配给类型为 'SnapshotSerializerPlugin' 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54794454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com