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天..请给我任何提示或链接.
提前致谢.
尝试:
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)
| 归档时间: |
|
| 查看次数: |
8720 次 |
| 最近记录: |