Typescript: Uncaught typeError, Cannot read property “push” of undefined
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 |
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 |
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 '18 at 14:04
J PeeneJ Peene
112
112
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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 |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
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 |
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 |
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 '18 at 14:21
answered Nov 13 '18 at 14:14
ShamPooShamShamPooSham
510416
510416
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.
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