我在我的React Native项目中使用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"
。
如何让Android上的React Native为TypeScript正确处理Symbol
?
答案 0 :(得分:3)
您可以使用import 'core-js/es6/symbol'
而无需添加npm依赖项或复制粘贴polyfill
答案 1 :(得分:0)
这完全是一个TypeScript问题。
您缺少填充物。
作为一个转换器,TypeScript转换语法结构以表示它们的行为,但它不提供运行时库。
使用您选择的软件包管理器安装an es6-symbol polyfill like this one,一切都会顺利。
符号是一个库,一般来说不在编译范围之内,至少从TypeScript团队的角度来看。
这样做的部分动机是您可以选择自己的polyfill实现,为您提供灵活性。我想到的另一个问题是,在有足够的信息知道是否可以排除填充物之前,经常会调用转换器。
注意:您的--target
设置为es2015
,但由于es2015
中指定的库未由--target es5
提供,您在某些平台上遇到了问题运行时。我强烈建议您暂时降低使用率"target": "es2015",
"lib": ["dom", "es7"],
。
我建议的另一件事是在配置术语中保持一致。
"target": "es2015",
"lib": ["dom", "es2016"],
令人困惑,应该改为
{{1}}
为了读者而
答案 2 :(得分:0)
您可以将它们导入您的根rather than a numeric value, but I always get the
文件中,而无需安装任何依赖项:
index.js