首页 > 解决方案 > TypeScript 中的“字符串 []”类型不存在“包含”

问题描述

从这个问题和接受的答案中,我知道有一种方法可以通过使用这行代码来检查数组是否包含 JavaScript 中的对象:

> ['joe', 'jane', 'mary'].includes('jane');
true 

但是,如果我在TypeScript中使用相同的代码,则会出现此错误:

includes类型上不存在属性string[]

  1. 为什么给编译器这个错误?我期望 JS 中可用的所有东西都可以在 TS 中使用。
  2. 如何在不更改代码的情况下解决此错误?它必须在 ES5 上运行。

标签: arraystypescriptecma

解决方案


包含在 中定义,lib.es2016.array.include.d.ts 因为它是es2016标准的一部分。您可以在您的库中包含此库,tsconfig但您必须为该方法提供您自己的 polyfil:

{
    "compilerOptions": {
        "target": "es5",
        "lib": [
            "dom",
            "scripthost",
            "es5",
            "es2016.array.include"
        ]
    }
}

如果您的运行时未在数组上提供此方法,您还可以通过分配来提供 polyfill Array.prototype.include(例如,您可以从此处获取 polyfill )


推荐阅读