Typescript: Uncaught typeError, Cannot read property “push” of undefined
up vote
1
down vote
favorite
private readonly lives: number = 5;
public loadLifeImages() {
var ammount: Array<any>;
for (var i = 0; i < this.lives; i++) {
ammount.push(i);
}
ammount.forEach((v, i) => {
console.log(this.lives);
console.log(i);
var newLifeImage = new Image();
newLifeImage.src = './assets/images/SpaceShooterRedux/PNG/UI/PlayerLife1_blue.png';
newLifeImage.onload = () => {
this.ctx.drawImage(newLifeImage, i * 50, 50, 30, 30);
}
})
}
I'm trying to push these numbers to this array in Typescript, so I can use a for each loop to put the images on my canvas, however it gives the error 'cannot read property "push" of undefined' I know it's a bit double, but I really can't figure out any other way to do it. Can someone figure out what it is? thanks in advance!
arrays typescript undefined push
add a comment |
up vote
1
down vote
favorite
private readonly lives: number = 5;
public loadLifeImages() {
var ammount: Array<any>;
for (var i = 0; i < this.lives; i++) {
ammount.push(i);
}
ammount.forEach((v, i) => {
console.log(this.lives);
console.log(i);
var newLifeImage = new Image();
newLifeImage.src = './assets/images/SpaceShooterRedux/PNG/UI/PlayerLife1_blue.png';
newLifeImage.onload = () => {
this.ctx.drawImage(newLifeImage, i * 50, 50, 30, 30);
}
})
}
I'm trying to push these numbers to this array in Typescript, so I can use a for each loop to put the images on my canvas, however it gives the error 'cannot read property "push" of undefined' I know it's a bit double, but I really can't figure out any other way to do it. Can someone figure out what it is? thanks in advance!
arrays typescript undefined push
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
private readonly lives: number = 5;
public loadLifeImages() {
var ammount: Array<any>;
for (var i = 0; i < this.lives; i++) {
ammount.push(i);
}
ammount.forEach((v, i) => {
console.log(this.lives);
console.log(i);
var newLifeImage = new Image();
newLifeImage.src = './assets/images/SpaceShooterRedux/PNG/UI/PlayerLife1_blue.png';
newLifeImage.onload = () => {
this.ctx.drawImage(newLifeImage, i * 50, 50, 30, 30);
}
})
}
I'm trying to push these numbers to this array in Typescript, so I can use a for each loop to put the images on my canvas, however it gives the error 'cannot read property "push" of undefined' I know it's a bit double, but I really can't figure out any other way to do it. Can someone figure out what it is? thanks in advance!
arrays typescript undefined push
private readonly lives: number = 5;
public loadLifeImages() {
var ammount: Array<any>;
for (var i = 0; i < this.lives; i++) {
ammount.push(i);
}
ammount.forEach((v, i) => {
console.log(this.lives);
console.log(i);
var newLifeImage = new Image();
newLifeImage.src = './assets/images/SpaceShooterRedux/PNG/UI/PlayerLife1_blue.png';
newLifeImage.onload = () => {
this.ctx.drawImage(newLifeImage, i * 50, 50, 30, 30);
}
})
}
I'm trying to push these numbers to this array in Typescript, so I can use a for each loop to put the images on my canvas, however it gives the error 'cannot read property "push" of undefined' I know it's a bit double, but I really can't figure out any other way to do it. Can someone figure out what it is? thanks in advance!
arrays typescript undefined push
arrays typescript undefined push
asked Nov 13 at 14:04
J Peene
112
112
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
This can be fixed by initializing ammount
like this:
var ammount: Array<any> = ;
This is because just typing var ammount: Array<any>
doesn't give a value to ammount
, so it becomes undefined
(the default value for all javascript variables). =
initializes the variable to be an empty array.
However, I want to point out that judging from the code you have here, there is no good reason to create a new array and just push the values into it. Instead, you could just put the forEach logic inside the for-loop.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
This can be fixed by initializing ammount
like this:
var ammount: Array<any> = ;
This is because just typing var ammount: Array<any>
doesn't give a value to ammount
, so it becomes undefined
(the default value for all javascript variables). =
initializes the variable to be an empty array.
However, I want to point out that judging from the code you have here, there is no good reason to create a new array and just push the values into it. Instead, you could just put the forEach logic inside the for-loop.
add a comment |
up vote
1
down vote
accepted
This can be fixed by initializing ammount
like this:
var ammount: Array<any> = ;
This is because just typing var ammount: Array<any>
doesn't give a value to ammount
, so it becomes undefined
(the default value for all javascript variables). =
initializes the variable to be an empty array.
However, I want to point out that judging from the code you have here, there is no good reason to create a new array and just push the values into it. Instead, you could just put the forEach logic inside the for-loop.
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
This can be fixed by initializing ammount
like this:
var ammount: Array<any> = ;
This is because just typing var ammount: Array<any>
doesn't give a value to ammount
, so it becomes undefined
(the default value for all javascript variables). =
initializes the variable to be an empty array.
However, I want to point out that judging from the code you have here, there is no good reason to create a new array and just push the values into it. Instead, you could just put the forEach logic inside the for-loop.
This can be fixed by initializing ammount
like this:
var ammount: Array<any> = ;
This is because just typing var ammount: Array<any>
doesn't give a value to ammount
, so it becomes undefined
(the default value for all javascript variables). =
initializes the variable to be an empty array.
However, I want to point out that judging from the code you have here, there is no good reason to create a new array and just push the values into it. Instead, you could just put the forEach logic inside the for-loop.
edited Nov 13 at 14:21
answered Nov 13 at 14:14
ShamPooSham
462313
462313
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53282766%2ftypescript-uncaught-typeerror-cannot-read-property-push-of-undefined%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown