Метод Lodash at () не работает в TS-файле (работает в .js) - PullRequest
0 голосов
/ 22 января 2019

Я конвертирую все мои файлы .js в .ts

Я использую lodash at()

{ 
  data:
      {
          test: 'test',
          sample: 'sample'
      }
}

sample.js:

var test = _.at(res[0], 'data.sample');
console.log(test); 

вывод:

'sample'

sample.ts:

let test = _.at(res[0], 'data.sample');

// error: Argument of type '"data.sample"' is not assignable to parameter of type 'Many<"constructor" | "toString" | "toLocaleString" | "valueOf" | "hasOwnProperty" | "isPrototypeO...'.

Невозможно использовать at() в файле .ts, как в файле .js

1 Ответ

0 голосов
/ 22 января 2019

Метод _.at() ожидает массив строк в соответствии с документацией.Использование одной строки на самом деле работает, но не документировано и может поддерживаться не всеми @types/lodash версиями.Простое решение будет следующим:

_.at(res[0], ['data.sample']);

Однако, поскольку вам нужен только один элемент, _.get() является лучшим вариантом:

_.get(res[0], 'data.sample');
...