【发布时间】:2016-05-27 09:59:03
【问题描述】:
这个问题来自How to push item to [string] in TypeScript
我想创建如下函数。
declare var sqlitePlugin:any;
getItems(options, callback) {
var query: string = `SELECT item_code,
item_name
FROM items `;
var param: [string];
if (options['limit']) {
var limit = options['limit'];
query = query + " LIMIT ? ";
param.push(String(limit));
}
if (options['offset']) {
var offset = options['offset'];
query = query + " OFFSET ? ";
param.push(String(offset));
}
this.execQuery(query, param, (resultSet)=>{
this.items = [];
for(let i = 0; i < resultSet.rows.length; i++) {
var item: Item = new Item();
item.code = resultSet.rows.item(i).item_code;
item.name = resultSet.rows.item(i).item_name;
this.artists.push(item);
}
callback(this.items);
} );
}
execQuery 函数需要将'param'参数设置为[string]的类型。
所以我将'param'元组声明为[string]。
我想通过options['limit'] 和options['offset'] 值动态更改参数元组。
但param.push(String(limit)); 失败,因为参数未定义,所以我尝试var param: [string] = []; 然后出现语法错误。
[ts] 类型 'undefined[]' 不能分配给类型 '[string]'。类型“undefined[]”中缺少属性“0”。
我该如何解决这个问题?
提前致谢。
【问题讨论】:
标签: javascript typescript