我有这样的功能
sqlQuery(query : string | Array, database = 'swdata') : Promise {
let rest;
if (Array.isArray(query)) {
rest = query.splice(1);
query = sqlString.format(query[0], rest);
}
const request = new Request('data', 'sqlQuery', {database, query, formatValues: true});
return this.connection.sendRequest(request);
}
我的IDE抱怨字符串没有方法拼接。这只是我的IDE的一个怪癖,还是有更好的方法来编写这段代码?
答案 0 :(得分:2)
您的IDE不能正确支持TypeScript语言服务。
Array.isArray()
是一个Type Guard函数,它参与TypeScript的控制流分析。这意味着在该块中,TypeScript语言服务可以确定query
的类型是数组类型,您不应该看到错误。
例如,如果您的IDE是WebStorm,则需要使用TypeScript语言服务进行设置和检查。 其他IDE可能有类似的选项或插件。
您可以使用VSCode对其进行测试。它应该工作得很好。