VSCode doesnt like when I create a function as a constructor variable











up vote
0
down vote

favorite












I am using Typescript for my application to create some classes. I noticed though, I am trying to define a function variable which would be a callback of sorts.



class GridButton {
constructor(public text: string, public icon: string, public clickEvent: function){ }
}


I was hoping that this could be a thing, it seems that the code analyzer doesn't like it.



I was planning to expand upon this by creating a AngularComponent for this as well, but I could just have it as a passed in function: @Input() clickEvent; for example:



<grid-button [clickEvent]='testFunc'></grid-button>


But I didnt want to just assume the idea of having this as a NG Component but instead a standalone class which I need to handle and accomplish some tests for.



Is there a way to pass in a Callback Function etc into a Class Constructor without NG Though?










share|improve this question


















  • 2




    function is a keyword in JavaScript. Maybe you meant Function? Either way you'd be better off explicitly specifying the parameter types and return type like clickEvent: (event: MouseEvent) => void or something like that.
    – Patrick Roberts
    Nov 19 at 15:48








  • 1




    To add more comments beside Patrick's, what you are trying to do feels like an antipattern. Angular has Output which is great for catching some events. 99% of the time, you should not need to pass a function to catch some event. Angular offers better ways to communicate between two components. Can you explain your case little bit further?
    – Bunyamin Coskuner
    Nov 19 at 16:05












  • @BunyaminCoskuner I am trying to not couple things to angular as much as pass in a self contained event as a part of the constructor.
    – Fallenreaper
    Nov 19 at 18:34










  • @PatrickRoberts you might be right. I know function is a keyword, but i wasnt sure what the proper type was for what I was looking for. Maybe it is in fact Function . Thank you!
    – Fallenreaper
    Nov 19 at 18:37















up vote
0
down vote

favorite












I am using Typescript for my application to create some classes. I noticed though, I am trying to define a function variable which would be a callback of sorts.



class GridButton {
constructor(public text: string, public icon: string, public clickEvent: function){ }
}


I was hoping that this could be a thing, it seems that the code analyzer doesn't like it.



I was planning to expand upon this by creating a AngularComponent for this as well, but I could just have it as a passed in function: @Input() clickEvent; for example:



<grid-button [clickEvent]='testFunc'></grid-button>


But I didnt want to just assume the idea of having this as a NG Component but instead a standalone class which I need to handle and accomplish some tests for.



Is there a way to pass in a Callback Function etc into a Class Constructor without NG Though?










share|improve this question


















  • 2




    function is a keyword in JavaScript. Maybe you meant Function? Either way you'd be better off explicitly specifying the parameter types and return type like clickEvent: (event: MouseEvent) => void or something like that.
    – Patrick Roberts
    Nov 19 at 15:48








  • 1




    To add more comments beside Patrick's, what you are trying to do feels like an antipattern. Angular has Output which is great for catching some events. 99% of the time, you should not need to pass a function to catch some event. Angular offers better ways to communicate between two components. Can you explain your case little bit further?
    – Bunyamin Coskuner
    Nov 19 at 16:05












  • @BunyaminCoskuner I am trying to not couple things to angular as much as pass in a self contained event as a part of the constructor.
    – Fallenreaper
    Nov 19 at 18:34










  • @PatrickRoberts you might be right. I know function is a keyword, but i wasnt sure what the proper type was for what I was looking for. Maybe it is in fact Function . Thank you!
    – Fallenreaper
    Nov 19 at 18:37













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I am using Typescript for my application to create some classes. I noticed though, I am trying to define a function variable which would be a callback of sorts.



class GridButton {
constructor(public text: string, public icon: string, public clickEvent: function){ }
}


I was hoping that this could be a thing, it seems that the code analyzer doesn't like it.



I was planning to expand upon this by creating a AngularComponent for this as well, but I could just have it as a passed in function: @Input() clickEvent; for example:



<grid-button [clickEvent]='testFunc'></grid-button>


But I didnt want to just assume the idea of having this as a NG Component but instead a standalone class which I need to handle and accomplish some tests for.



Is there a way to pass in a Callback Function etc into a Class Constructor without NG Though?










share|improve this question













I am using Typescript for my application to create some classes. I noticed though, I am trying to define a function variable which would be a callback of sorts.



class GridButton {
constructor(public text: string, public icon: string, public clickEvent: function){ }
}


I was hoping that this could be a thing, it seems that the code analyzer doesn't like it.



I was planning to expand upon this by creating a AngularComponent for this as well, but I could just have it as a passed in function: @Input() clickEvent; for example:



<grid-button [clickEvent]='testFunc'></grid-button>


But I didnt want to just assume the idea of having this as a NG Component but instead a standalone class which I need to handle and accomplish some tests for.



Is there a way to pass in a Callback Function etc into a Class Constructor without NG Though?







javascript angular function typescript






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 19 at 15:29









Fallenreaper

3,89583179




3,89583179








  • 2




    function is a keyword in JavaScript. Maybe you meant Function? Either way you'd be better off explicitly specifying the parameter types and return type like clickEvent: (event: MouseEvent) => void or something like that.
    – Patrick Roberts
    Nov 19 at 15:48








  • 1




    To add more comments beside Patrick's, what you are trying to do feels like an antipattern. Angular has Output which is great for catching some events. 99% of the time, you should not need to pass a function to catch some event. Angular offers better ways to communicate between two components. Can you explain your case little bit further?
    – Bunyamin Coskuner
    Nov 19 at 16:05












  • @BunyaminCoskuner I am trying to not couple things to angular as much as pass in a self contained event as a part of the constructor.
    – Fallenreaper
    Nov 19 at 18:34










  • @PatrickRoberts you might be right. I know function is a keyword, but i wasnt sure what the proper type was for what I was looking for. Maybe it is in fact Function . Thank you!
    – Fallenreaper
    Nov 19 at 18:37














  • 2




    function is a keyword in JavaScript. Maybe you meant Function? Either way you'd be better off explicitly specifying the parameter types and return type like clickEvent: (event: MouseEvent) => void or something like that.
    – Patrick Roberts
    Nov 19 at 15:48








  • 1




    To add more comments beside Patrick's, what you are trying to do feels like an antipattern. Angular has Output which is great for catching some events. 99% of the time, you should not need to pass a function to catch some event. Angular offers better ways to communicate between two components. Can you explain your case little bit further?
    – Bunyamin Coskuner
    Nov 19 at 16:05












  • @BunyaminCoskuner I am trying to not couple things to angular as much as pass in a self contained event as a part of the constructor.
    – Fallenreaper
    Nov 19 at 18:34










  • @PatrickRoberts you might be right. I know function is a keyword, but i wasnt sure what the proper type was for what I was looking for. Maybe it is in fact Function . Thank you!
    – Fallenreaper
    Nov 19 at 18:37








2




2




function is a keyword in JavaScript. Maybe you meant Function? Either way you'd be better off explicitly specifying the parameter types and return type like clickEvent: (event: MouseEvent) => void or something like that.
– Patrick Roberts
Nov 19 at 15:48






function is a keyword in JavaScript. Maybe you meant Function? Either way you'd be better off explicitly specifying the parameter types and return type like clickEvent: (event: MouseEvent) => void or something like that.
– Patrick Roberts
Nov 19 at 15:48






1




1




To add more comments beside Patrick's, what you are trying to do feels like an antipattern. Angular has Output which is great for catching some events. 99% of the time, you should not need to pass a function to catch some event. Angular offers better ways to communicate between two components. Can you explain your case little bit further?
– Bunyamin Coskuner
Nov 19 at 16:05






To add more comments beside Patrick's, what you are trying to do feels like an antipattern. Angular has Output which is great for catching some events. 99% of the time, you should not need to pass a function to catch some event. Angular offers better ways to communicate between two components. Can you explain your case little bit further?
– Bunyamin Coskuner
Nov 19 at 16:05














@BunyaminCoskuner I am trying to not couple things to angular as much as pass in a self contained event as a part of the constructor.
– Fallenreaper
Nov 19 at 18:34




@BunyaminCoskuner I am trying to not couple things to angular as much as pass in a self contained event as a part of the constructor.
– Fallenreaper
Nov 19 at 18:34












@PatrickRoberts you might be right. I know function is a keyword, but i wasnt sure what the proper type was for what I was looking for. Maybe it is in fact Function . Thank you!
– Fallenreaper
Nov 19 at 18:37




@PatrickRoberts you might be right. I know function is a keyword, but i wasnt sure what the proper type was for what I was looking for. Maybe it is in fact Function . Thank you!
– Fallenreaper
Nov 19 at 18:37

















active

oldest

votes











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',
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
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53377850%2fvscode-doesnt-like-when-i-create-a-function-as-a-constructor-variable%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































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.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53377850%2fvscode-doesnt-like-when-i-create-a-function-as-a-constructor-variable%23new-answer', 'question_page');
}
);

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







Popular posts from this blog

Costa Masnaga

Fotorealismo

Sidney Franklin