Тип параметра функции возвращаемое значение c - PullRequest
1 голос
/ 12 апреля 2020

В настоящее время я передаю обратный вызов для синтаксического анализа необработанных значений, чтобы указать c generi c types

protected constructValue<TResult>(key: string, parser: Function): TResult {
    const rawValue: string = /* assign raw value here */;

    return parser(rawValue);
}

Есть ли способ убедиться, что функция парсера должна быть обратный вызов, который возвращает значение типа generi c? Так что это будет работать

constructValue<number>('myKey', Number)

, но это не будет

constructValue<number>('myKey', value => value === 'true')

, потому что анализатор возвращает логическое значение, а не число.

1 Ответ

2 голосов
/ 12 апреля 2020

Вы можете ограничить тип Parser от обобщенного c Function до что-то вроде:

parser: (...args: any) => TResult

или даже лучше определить, что это за аргументы:

parser: (rawValue: string) => TResult
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...