找不到变量符号使用 React Native 和 TypeScript



我正在使用我的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";

最新更新