首页 > 解决方案 > Lodash at() 方法在 ts 文件中不起作用(在 .js 中起作用)

问题描述

我正在将所有 .js 文件转换为 .ts

我正在使用 lodashat()

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

示例.js:

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

输出:

'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()像在 .js 文件中那样在 .ts 文件中使用

标签: typescriptlodash

解决方案


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

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

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

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

推荐阅读