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

tmr*_*ex7 5 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);
    } );
  }
});
Run Code Online (Sandbox Code Playgroud)

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

提前致谢.

gdg*_*dgr 8

尝试:

var param: string[] = [];
Run Code Online (Sandbox Code Playgroud)

检查此代码段,它会显示所需的结果. 问题是你只是没有初始化变量param,因此.push不存在undefined.

你也没有正确地声明数组(见上面的差异).有两种方法可以从TypeScript的文档中获取:

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

let list: number[] = [1, 2, 3];
Run Code Online (Sandbox Code Playgroud)

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

let list: Array<number> = [1, 2, 3];
Run Code Online (Sandbox Code Playgroud)

这是TS网站上的相关文档