Ionic 2 - TypeScript |填充一个接口对象数组
Ionic 2 - TypeScript | Populate an array of interface objects
在问这个问题之前我真的做了功课,我相信你们中的一些人会觉得这很愚蠢,但我对Typescript仍然是一种新手,我完全在努力解决这个问题。
我有一个接口:
export interface Product {
name?: string;
image_rul?: string;
description?: string;
price?: number;
quantity?: number;
}
我正在尝试创建一个类型为Product的数组,并使用随机值填充该数组。
为了进一步解释我自己,这里是我是怎么做的:
export class HomePage {
products: Product[];
constructor(public navCtrl: NavController) {
for (var i=0; i< 10; i++) {
var random: number = Math.floor(Math.random() * 10) + 1;
this.products[i] = <Product>{
name: `Test_${i}`,
image_rul: "https://unsplash.it/200/?random",
description: "This is a short description",
price: random,
quantity: i
};
}
console.log(this.products);
}
}
当我运行这个时,我得到一个错误:
polyfills.js:3 Error: Uncaught (in promise): Error: Error in ./HomePage class HomePage_Host - inline template:0:0 caused by: Cannot set property '0' of undefined(…)
你能给我指个正确的方向吗?我做错了什么,我该怎么做?
在typescript中定义类成员时:
class A {
member: string[];
}
它不会在编译后的js代码中创建成员:
var A = (function () {
function A() {
}
return A;
}());
你需要初始化这个成员:
export class HomePage {
products: Product[];
constructor(public navCtrl: NavController) {
this.products = [];
...
如果你不这样做,那么它是undefined
,这导致了你发布的错误。
在声明成员时也可以这样做:
export class HomePage {
products: Product[] = [];
这将导致相同的js代码。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 如何建立一个网页,检查我的路由器网络接口是否可以访问
- TypeError: 'stepUp' 调用了一个未实现接口 HTMLInputElement ajax
- 强制模块具有特定功能.例如实现一个接口
- 有没有一个javascript引擎(运行时);t实现Timers接口
- Javascript中的节点接口是一个对象吗?
- 从 JavaScript 构造函数返回一个公共接口
- 设计一个“弹出窗口”接口自动更新-甚至可能
- 外部接口在Flash Actionscript 2工作在一个网站,但不是另一个
- Ionic 2 - TypeScript |填充一个接口对象数组
- 如何用Meteor创建一个异步RESTful接口
- 通过原型链在JavaScript中定义一个接口
- 将__proto__分配给一个接口,将其变成一个对象——聪明或危险
- TypeError: & # 39;加速的# 39;在一个对象上调用,这个对象没有在jquery中实现接口HTMLInp