首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReferenceError:找不到变量: TextEncoder

ReferenceError:找不到变量: TextEncoder
EN

Stack Overflow用户
提问于 2019-04-26 13:16:45
回答 3查看 6.5K关注 0票数 3

我正在使用VSCode/Typescript React 3.4.3作为,而且我在运行时遇到了TextEncoder方面的问题

ts代码:

代码语言:javascript
复制
...
var encoder = new TextEncoder();
var b: Uint8Array = encoder.encode(newName);
...

我的tsconfig库:

代码语言:javascript
复制
  "module": "es2015",
    "target": "es2015",
    "jsx": "react",
    "lib": ["es5", "es2017", "dom"]

这个编译失败了,但是当它试图创建TextEncoder实例时,它在运行时失败了:

"ReferenceError:找不到变量: TextEncoder“

我不明白这是怎么回事。

感谢你的任何帮助

编辑1:事实是,当您调试JS代码时,它在Chrome中运行,这将导致成功。但是,当您不支持时,您就会发现JavaScriptCore既不支持TextEncorder也不支持btoa。

因此,我选择了使用npm模块(文本编码基地-64):

代码语言:javascript
复制
import * as encoding from 'text-encoding';
import {encode as btoa} from 'base-64'
...
var encoder = new encoding.TextEncoder();
...
EN

回答 3

Stack Overflow用户

发布于 2022-02-25 07:42:21

我在使用stomp.js套接字时也遇到了同样的错误。

我所做的就是

从“文本编码”导入*作为编码;

在App.js中,并且在发行版和调试中都很好。

票数 1
EN

Stack Overflow用户

发布于 2021-02-01 07:48:09

票数 0
EN

Stack Overflow用户

发布于 2022-11-22 10:59:34

对于在2022年仍有此问题的人,或打字本项目的人,请执行以下步骤:

  1. 运行:yarn add text-encoding
  2. 运行:yarn add big-integer
  3. 将以下代码添加到App.js或App.tsx中:
代码语言:javascript
复制
const TextEncodingPolyfill = require('text-encoding');
const BigInt = require('big-integer')

Object.assign(global, {
    TextEncoder: TextEncodingPolyfill.TextEncoder,
    TextDecoder: TextEncodingPolyfill.TextDecoder,
    BigInt: BigInt,
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55868484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档