我正在使用我的React Native Project中的ES6 Symbol
。这适用于iOS,但是在Android上,我得到Can't find variable: Symbol
。
我正在使用TypeScript,并且我尝试了各种tsconfig.json
:
{
"compilerOptions": {
"target": "es2015",
"jsx": "react",
"lib": ["dom", "es7"],
"moduleResolution": "node"
},
}
我还尝试了lib: ["dom", "es6"]
和["dom", "es6", "es7"]
以及target: "es5"
。
如何通过Typescript正确处理Symbol
的Android上的React Antial?
您可以使用 import 'core-js/es6/symbol'
,而无需添加npm依赖项或复制粘贴polyfill
编辑:我怀疑这是一个问题。Android JS运行时没有符号支持。我也在普通JSX中遇到了这个问题,并使用上面粘贴的摘要修复了它。
这个打字稿问题。
您缺少一个多填充。
作为转介剂,打字稿转换句法结构以表示其行为,但不提供运行时库。
与您选择的包装管理器一起安装ES6-Symbol Polyfill,一切都会很好。
符号是一个库,至少从打字稿团队的角度来看,通常是在转卸范围之外。
这样做的一部分是您可以选择自己的多填充实现,从而为您提供灵活性。想到的另一个想法是,在具有足够的信息以知道是否可以排除polyfill之前,通常会召集转介剂。
。注意:您的--target
设置为es2015
,但是由于运行时未提供es2015
中指定的库,您在某些平台上遇到困难。我强烈建议您暂时降低使用--target es5
。
我建议的另一件事是在您的配置术语中保持一致。
"target": "es2015",
"lib": ["dom", "es7"],
令人困惑,应更改为
"target": "es2015",
"lib": ["dom", "es2016"],
为了阅读器
您可以在root index.js
文件中导入这些内容,而无需安装任何依赖项:
import "core-js/stable";
import "regenerator-runtime/runtime";