Lodash的at()方法不适用于ts文件(在.js中有效)

时间:2019-01-22 16:12:32

标签: typescript lodash

我正在将所有.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...'.

.ts文件中不能像.js文件中那样使用at()

1 个答案:

答案 0 :(得分:0)

根据文档,方法_.at()需要一个字符串数组。使用单个字符串实际上是可行的,但是没有记录,并且所有@types/lodash版本都可能不支持。一个简单的解决方案就是。

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

但是,由于只需要一项,_.get()是一个更好的选择:

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