React Native,TypeScript - 无论设置了啥配置,类型“any []”上都不存在属性“包含”,“发现”

Posted

技术标签:

【中文标题】React Native,TypeScript - 无论设置了啥配置,类型“any []”上都不存在属性“包含”,“发现”【英文标题】:React Native, TypeScript - Property 'includes', 'finds' does not exist on type 'any[]' no matter what configuration is setupReact Native,TypeScript - 无论设置了什么配置,类型“any []”上都不存在属性“包含”,“发现” 【发布时间】:2019-06-04 09:41:09 【问题描述】:

我发现这个问题在很多很多地方都被问过,但没有一个答案对我有用。我的预感是这与我在 react-native 中工作有关,但我不确定。

如果我的 linter 声称存在错误,我基本上不能使用 findincludes 等 es7 数组属性。没有(react-native javascript 环境包含此属性)但无论我做什么我都无法消除错误。

对此问题的大部分回复都围绕着更改tsconfig.json,特别是libtarget 属性。

我现在的tsconfig.json 是:


  "compilerOptions": 
    "allowJs": true,
    "target": "esnext",
    "outDir": "dist",
    "module": "commonjs",
    "sourceMap": true,
    "lib": ["es2016.array.include"],
    "jsx": "react-native",
    "strict": true,
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  

根据文档,es2016.array.include 是 lib 属性的有效值,但我仍然看到错误 Property includes does not exist on type any[]

我尝试将目标设置为 es2015、es2016、es2017、es2018、es5、es6 和 esnext。我尝试向我的 lib 参数添加各种东西,包括 es6、es6、es7、dom、es2016、es2017、es2018、esnext 以及 es2106.array.includes 等特定属性,但这些值或任何组合都不能从我的短绒。

【问题讨论】:

所以代码执行但 linter 抱怨?哪个版本的tsc 您在哪里看到错误,在编译期间还是在执行期间? tsconfig.json 更改仅应在转译期间起作用。它不会为函数添加 polyfill,这将 存在于 React Native 可执行文件中(因为它们倾向于在 android 上使用旧版本的 JavaScriptCore)。在这种情况下,您需要通过 core-js 或其他 polyfill 添加它们。 React Native 应该是通过 babel 自带的,但我想知道它有多完整。 好吧,我是打字稿的新手,所以我没有意识到这一点。此错误仅通过 VSCode 中的 tslint 显示。当我编译时它不存在,所以我想我是在吠叫错误的树? 也 fwiw Array.includesArray.find 在所有 react-native javascript 运行时中填充:facebook.github.io/react-native/docs/javascript-environment 【参考方案1】:

对我有帮助

在 tsconfig.json "lib": ["es6", "ES2016.Array.Include"],

【讨论】:

以上是关于React Native,TypeScript - 无论设置了啥配置,类型“any []”上都不存在属性“包含”,“发现”的主要内容,如果未能解决你的问题,请参考以下文章

React-native:从 javascript 迁移到 typescript

已有的react-native 项目配置TypeScript

在后端、react 和 react-native 客户端之间共享 typescript 代码

react native 可以使用typescript开发吗

react+Native使用typeScript

如何为 React Native 嵌套组件创建 Typescript 定义