我在 React Native 项目中使用 VSCode/Typescript React 3.4.3,但在使用 TextEncoder 时遇到问题
ts代码:
...
var encoder = new TextEncoder();
var b: Uint8Array = encoder.encode(newName);
...
Run Code Online (Sandbox Code Playgroud)
我的 tsconfig 库:
"module": "es2015",
"target": "es2015",
"jsx": "react",
"lib": ["es5", "es2017", "dom"]
Run Code Online (Sandbox Code Playgroud)
此编译正常,但在运行时尝试创建 TextEncoder 实例时失败:
“ReferenceError:找不到变量:TextEncoder”
我不明白这里出了什么问题。
任何帮助表示赞赏
编辑 1:事实是,当您调试 JS 代码时,它会在 Chrome 中运行,从而成功。但当你不支持时,你最终会发现 JavaScriptCore 既不支持 TextEncorder 也不支持 btoa。
所以我选择倾向于使用 npm 模块(text-encoding和base-64):
import * as encoding from 'text-encoding';
import {encode as btoa} from 'base-64'
...
var encoder = new encoding.TextEncoder();
...
Run Code Online (Sandbox Code Playgroud)
小智 5
对于那些在 2022 年仍然遇到此问题或打字稿项目问题的人,请执行以下步骤:
yarn add text-encoding
yarn add big-integer
const TextEncodingPolyfill = require('text-encoding');
const BigInt = require('big-integer')
Object.assign(global, {
TextEncoder: TextEncodingPolyfill.TextEncoder,
TextDecoder: TextEncodingPolyfill.TextDecoder,
BigInt: BigInt,
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11472 次 |
最近记录: |