«включает» не существует для типа «строка []» в TypeScript

Из этого вопроса и принятого ответа я знаю, что существует метод проверить, включает ли массив объект в JavaScript с использованием этой строки кода:

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

Однако, если я использую тот же код в Машинопись, я получаю эту ошибку:

Property includes does not exist on type string[].

  1. Почему компилятор выдает эту ошибку? Я ожидаю, что все, что доступно в JS, доступно и в TS.
  2. Как я могу решить эту ошибку, не меняя код? Он должен работать на ES5.

@Baboo_: Это не дубликат, потому что мой вопрос касается Машинопись, а не JavaScript, как в предоставленной вами ссылке!

H. Pauwelyn 06.03.2019 14:59

Я пропустил скопированную ссылку, которую вы предоставили, это та, которую я хотел предоставить;)

Baboo 06.03.2019 15:04
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
3
2
4 229
1

Ответы 1

Включение определено в lib.es2016.array.include.d.ts, поскольку оно является частью стандарта es2016. Вы можете включить эту библиотеку в свой tsconfig, но вы должны предоставить свой собственный полифил для метода:

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

Вы также можете предоставить полифилл, назначив Array.prototype.include, если ваша среда выполнения не предоставляет этот метод для массива (например, вы можете получить полифилл из здесь)

Другие вопросы по теме