【问题标题】:Subsequent variable declarations must have the same type. Variable 'where' must be of type 'any[]', but here has type 'string[]'后续的变量声明必须具有相同的类型。变量“where”必须是“any[]”类型,但这里有“string[]”类型
【发布时间】:2020-09-11 16:22:26
【问题描述】:

我有以下 javascript 条件。

var year = '2020'
var month = '05'
//var status = 'pending'

var dateParam = '' + year + '-' + month + '%';

if (status == 'pending' || status == 'completed')
{
    var query = "SELECT * FROM activities AS a WHERE DATE(a.start_datetime) LIKE ? AND status = ?;";
    var where = [
        dateParam,
        status
    ]
}
else {
    var query = "SELECT * FROM activities AS a WHERE DATE(a.start_datetime) LIKE ?;";
    var where = [
        dateParam
    ]
}

console.log(query)
console.log(where)

虽然它在 code-sn-p 上运行良好,但我无法从 Angular/Ionic 中获得警告,并出现以下错误。

随后的变量声明必须具有相同的类型。多变的 'where' 必须是 'any[]' 类型,但这里有 'string[]' 类型。

解决此问题的最佳方法是什么?我试图通过声明来进行实验

var where = any[] = []

但是,没有工作,我可能错过了一些东西。

【问题讨论】:

    标签: javascript node.js typescript ionic-framework


    【解决方案1】:

    不要使用var,使用constvar 使它成为一个全局变量。

    【讨论】:

    • 好像不行;找不到名称 'where'.ts(2304)
    • 您需要将您的 console.log 语句放在与 wherequery 变量相同的范围内。这是因为它们不再是全球性的。
    【解决方案2】:

    var year = '2020'
    var month = '05'
    //var status = 'pending'
    
    var dateParam = '' + year + '-' + month + '%';
    var where: any[] = [];
    if (status == 'pending' || status == 'completed')
    {
        var query = "SELECT * FROM activities AS a WHERE DATE(a.start_datetime) LIKE ? AND status = ?;";
        where = [
            dateParam,
            status
        ]
    }
    else {
        var query = "SELECT * FROM activities AS a WHERE DATE(a.start_datetime) LIKE ?;";
        where = [
            dateParam
        ]
    }
    
    console.log(query)
    console.log(where)

    根据你的代码回答,在顶部声明并初始化where变量。

    因为 var 没有块作用域。然后query 变量。也是。

    【讨论】:

    • 啊!这行得通!感谢您指出我错过的内容。
    猜你喜欢
    • 2016-04-11
    • 2017-10-23
    • 2017-11-15
    • 2018-04-18
    • 2017-08-17
    • 1970-01-01
    • 2017-07-14
    • 2016-11-07
    • 2019-09-04
    相关资源
    最近更新 更多