如何在TypeScript中将项目推送到[string]

时间:2016-05-26 12:20:34

标签: javascript typescript

我想将项目添加到[string]。 但是以下代码在param.push语句中失败。

修改

declare var sqlitePlugin:any;
var query: string = `SELECT * 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));
}

sqlitePlugin.openDatabase({name: 'Items.db', key: 'Password', location: 'default'}, (db) =>  {
  db.transaction((tx)=> {
    tx.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.items.push(item);
      }
      callback(this.items);
    } );
  }
});

很抱歉问这个非常基本的问题,但我已经挣扎了2天.. 请给我任何提示或链接。

提前致谢。

2 个答案:

答案 0 :(得分:5)

尝试:

var param: string[] = [];

Check this snippet out, it shows the desired result. 问题是您只是没有初始化变量param,因此.push不存在undefined

此外,您没有正确声明阵列(请参阅上面的差异)。有两种方法可以这样做,取自TypeScript的文档:

  

TypeScript与JavaScript一样,允许您使用值数组。   数组类型可以用两种方式之一编写。在第一个,你使用   元素的类型后跟[]表示其数组   元素类型:

let list: number[] = [1, 2, 3];
  

第二种方式使用通用数组类型Array:

let list: Array<number> = [1, 2, 3];

And here is the relevant documentation on TS site

答案 1 :(得分:0)

您可以使用以下两种语法之一在typescript中定义字符串数组:

使用常规数组语法:

var param: string[] = [];

使用泛型语法:

var param: Array<string> = [];