Type 'typeof TextDecoder' is missing the following properties from type 'TextDecoder': decode, encoding, fatal, ignoreBOMts(2739)
或与
global.TextDecoder = {prototype: new TextDecoder("utf-8")}
我得到
Type 'import("util").TextDecoder' is not assignable to type 'TextDecoder'.
Types of property 'decode' are incompatible.
Type '(input?: ArrayBuffer | ArrayBufferView | null | undefined, options?: { stream?: boolean | undefined; } | undefined) => string' is not assignable to type '(input?: BufferSource | undefined, options?: TextDecodeOptions | undefined) => string'.
Types of parameters 'input' and 'input' are incompatible.
Type 'BufferSource | undefined' is not assignable to type 'ArrayBuffer | ArrayBufferView | null | undefined'.
Type 'ArrayBufferView' is not assignable to type 'ArrayBuffer | ArrayBufferView | null | undefined'.
Type 'ArrayBufferView' is missing the following properties from type 'DataView': getFloat32, getFloat64, getInt8, getInt16, and 17 more.
4条答案
按热度按时间4ktjp1zp1#
虽然它应该与jsdom捆绑在一起,但它没有与jsdom 16捆绑在一起。因此,您可以像这样使用polyfill:
nxagd54h2#
我也收到了这个错误,并且正在使用标准的Next.js jest和react测试库测试设置,在这里的文档中概述:https://nextjs.org/docs/testing#setting-up-jest-with-the-rust-compiler。
特别是,它使用
jest.config.js
配置文件中的testEnvironment: 'jest-environment-jsdom'
测试环境。不幸的是,在我的一个后端API路由(Express路由)中导入jsdom破坏了我的测试,给了我
TextEncoder is not defined
错误。我能够通过将以下 * 添加到包含损坏的测试 * 的文件的顶部来修复它:
通过jest文档阅读更多关于此技术的内容。
最后,Jest维护者Simen的以下问题评论帮助澄清了我的情况:https://github.com/jsdom/jsdom/issues/2524#issuecomment-902027138
fkvaft9z3#
在TypeScript中添加@leonheess的答案:
添加到测试文件的顶部(错误发生的地方,在导致错误的行之前):
即使是很好地尝试,例如。
我犯了错误
或与
我得到
所以最好只分配并忽略不兼容性。
txu3uszq4#
确保您的
whatwg-url
软件包至少具有^10.0.0
版本