不能将类型“字符串”分配给类型“字符串[]”

时间:2019-12-19 13:27:30

标签: typescript

在尝试分配新数组时出现主题错误。 功能如下:

function setUpdateQuery(data: Object) : UpdateData {
 const keys : string[] = [];
 const values : string[] = [];

Object.entries(data)
    .map(([key, value]) => {
      if (value !== undefined) {
        keys.push(`${key} = ?`);
        values.push(JSON.stringify(value));
      }
    });

   const parsedKeys: string[] = keys.join(', ');

   return ({ values, keys: parsedKeys });
}

我在第const parsedKeys: string[] = keys.join(', ');行出现错误

我试图将字符串转换为这样的字符串:

const parsedKeys: string[] = keys.join(', ') : string[];

但是然后我得到了另一个错误。 请告知,我是打字稿的新手。

2 个答案:

答案 0 :(得分:1)

.join()返回字符串,而不是数组。这就是为什么它被称为 join 的原因。有一个名为.split()的相反方法,该方法返回一个数组。所以这个:

const parsedKeys: string[] = keys.join(', ');

应该是这样的:

const parsedKeys: string = keys.join(', ');

答案 1 :(得分:1)

这是不正确的

const parsedKeys: string[] = keys.join(', ');

join(', ')生成字符串,而不是数组

['a', 'b', 'c'].join(', ') === 'a, b, c'