Как использовать `_.partial` с TypeScript?

#typescript #underscore.js

#typescript #underscore.js

Вопрос:

 
import * as _ from 'underscore';

const partialFn = _.partial(fn, _, fixedArg);
  

выдает ошибку типа. Я пробовал вводить _ аргумент с помощью <any> , но это не устраняет проблему.

Как _.partial предполагается использовать с TypeScript?

Комментарии:

1. Вы установили @types/underscore ?

2. Это не решило проблему.

3. «выдает ошибку типа» — какую ошибку?

4. `Ошибка типа: аргумент типа «{ по умолчанию: символ подчеркивания; каждый<T> (список: List<T>, итератор: ListIterator<T, void>, контекст?: любой): Список<T>; каждый <T> (объект: Dictionary<T>, итератор: ObjectIterator<T, void>, контекст?: любой): Словарь<…>; … еще 133 …; цепочка<T>(obj: T[]): _Chain<…>; цепочка<T>(obj: Dictionary<…>): _Chain<…>; цепочка<T exte…` не может быть присвоена параметру типа ‘UnderscoreStatic’. «`

5. Что, если import _ from 'underscore'; вместо этого? Похоже, что UnderscoreStatic это экспорт по умолчанию.

Ответ №1:

Учитывая, что UnderscoreStatic определяется как default экспорт, следует

 import _ from 'underscore';
  

вместо этого.

Это удовлетворило бы средство проверки типов, и остальная часть кода не должна изменяться (поскольку подчеркивание экспортируется как именованный экспорт, так и как свойства экспорта по умолчанию).