array literal: 这种类型不能被强制转换为字符串
array literal: This type can not be coerced to string
我有对象
const arr = [{ x: 1, y: 2 }];
我想在模板文字中使用它,因为我的用例但是出现错误,假设我们使用模板文字记录这个数组,比如
console.log(`${arr}`);
我们会得到这个错误
array literal: This type can not be coerced to string
关于如何在模板文字中使用数组的任何替代解决方案?
这是我的用例 我有一个问题
query {
processes(
page: 1,
itemsPerPage: 100,
filterBy: ${where}, // This is where I am getting this error, I want to pass an array here
) {
id
businessKey
name
processDefinition {
name
}
createDate
endDate
tasks {
id
}
}
}
但它被转换为 [Object Object]
。我知道存在局限性,所以如果您可以提出更好的解决方案?
这是我的 where 对象
const where = [{ name: 'endDate', op: 'is null' }];
如果我没理解错的话,你要找的是:
filterBy: ${JSON.stringify(where)},
我用过这个功能
const formatArray = (array: Array<Object>) => {
if (!array || array.length === 0) {
return '[]';
}
const objs = array.map((obj) => {
return Object.entries(obj)
.map(([key, value]) => `${key}: "${String(value)}"`)
.join(', ');
});
return `[{${objs.join('},{')}}]`;
};
并将查询更改为
query {
processes(
page: 1,
itemsPerPage: 100,
filterBy: ${formatArray(where)} // This is where I am formatting my array
) {
id
businessKey
name
processDefinition {
name
}
createDate
endDate
tasks {
id
}
}
}
成功了。
我有对象
const arr = [{ x: 1, y: 2 }];
我想在模板文字中使用它,因为我的用例但是出现错误,假设我们使用模板文字记录这个数组,比如
console.log(`${arr}`);
我们会得到这个错误
array literal: This type can not be coerced to string
关于如何在模板文字中使用数组的任何替代解决方案?
这是我的用例 我有一个问题
query {
processes(
page: 1,
itemsPerPage: 100,
filterBy: ${where}, // This is where I am getting this error, I want to pass an array here
) {
id
businessKey
name
processDefinition {
name
}
createDate
endDate
tasks {
id
}
}
}
但它被转换为 [Object Object]
。我知道存在局限性,所以如果您可以提出更好的解决方案?
这是我的 where 对象
const where = [{ name: 'endDate', op: 'is null' }];
如果我没理解错的话,你要找的是:
filterBy: ${JSON.stringify(where)},
我用过这个功能
const formatArray = (array: Array<Object>) => {
if (!array || array.length === 0) {
return '[]';
}
const objs = array.map((obj) => {
return Object.entries(obj)
.map(([key, value]) => `${key}: "${String(value)}"`)
.join(', ');
});
return `[{${objs.join('},{')}}]`;
};
并将查询更改为
query {
processes(
page: 1,
itemsPerPage: 100,
filterBy: ${formatArray(where)} // This is where I am formatting my array
) {
id
businessKey
name
processDefinition {
name
}
createDate
endDate
tasks {
id
}
}
}
成功了。