Установленные мной пакеты: lodash
и @types/lodash
.
У меня есть:
import _ from 'lodash';
function doSomething(): string[] {
const letters = ['c', 'a', 'b'];
return _.orderBy(letters, [null], ['asc']);
}
console.log(doSomething());
Но return _.orderBy(letters, [null], ['asc']);
выдает ошибку:
Type '(string | number | (<U>(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[]) | (() => string) | (() => string) | (() => string | undefined) | ((...items: string[]) => number) | ... 25 more ... | { ...; })[]' is not assignable to type 'string[]'.
Type 'string | number | (<U>(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[]) | (() => string) | (() => string) | (() => string | undefined) | ((...items: string[]) => number) | ... 25 more ... | { ...; }' is not assignable to type 'string'.
Type 'number' is not assignable to type 'string'.
И все же ясно, что будет возвращен массив строк.
Есть ли способ исправить это, кроме принудительного приведения его к return _.orderBy(letters, [null], ['asc']) as string[];
? Есть ли способ указать тип для orderBy
наследуемого от letters
?