Typescript: Аргумент типа 'RegExpMatchArray' не может быть назначен параметру типа 'string'
У меня есть следующее выражение:
import { persistState } from 'redux-devtools';
const enhancer = compose(
applyMiddleware(thunk, router, logger),
DevTools.instrument(),
persistState(
window.location.href.match(/[?&]debug_session=([^&]+)\b/)
)
);
Я получаю аргумент для сопоставления функции со следующей ошибкой
Аргумент типа 'RegExpMatchArray' нельзя назначить параметру типа 'строка'. Соответствует строке с регулярным выражением и возвращает массив, содержащий результаты этого поиска. (метод) String.match(regexp: RegExp): RegExpMatchArray (+1 перегрузка)
Определение взгляда в VSCode показывает:
match(regexp: string): RegExpMatchArray;
/**
* Matches a string with a regular expression, and returns an array containing the results of that search.
* @param regexp A regular expression object that contains the regular expression pattern and applicable flags.
*/
match(regexp: RegExp): RegExpMatchArray;
/**
* Replaces text in a string, using a regular expression or search string.
* @param searchValue A string that represents the regular expression.
* @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.
*/
На мой взгляд, аргумент имеет тип RegExp, как и параметр в определении. Тогда почему ошибка?
2 ответа
Решение
@NitzanTomer прав. Это не параметр соответствия функций, который имеет несоответствие типов. Вы, конечно, пытаетесь сохранить возвращаемое значение функции соответствия в строковой переменной или вернуть его из :string
функция / передать его как string
параметр.