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?
javascript angular function typescript
add a comment |
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?
javascript angular function typescript
2
function
is a keyword in JavaScript. Maybe you meantFunction
? Either way you'd be better off explicitly specifying the parameter types and return type likeclickEvent: (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 hasOutput
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 knowfunction
is a keyword, but i wasnt sure what the proper type was for what I was looking for. Maybe it is in factFunction
. Thank you!
– Fallenreaper
Nov 19 at 18:37
add a comment |
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?
javascript angular function typescript
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
javascript angular function typescript
asked Nov 19 at 15:29
Fallenreaper
3,89583179
3,89583179
2
function
is a keyword in JavaScript. Maybe you meantFunction
? Either way you'd be better off explicitly specifying the parameter types and return type likeclickEvent: (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 hasOutput
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 knowfunction
is a keyword, but i wasnt sure what the proper type was for what I was looking for. Maybe it is in factFunction
. Thank you!
– Fallenreaper
Nov 19 at 18:37
add a comment |
2
function
is a keyword in JavaScript. Maybe you meantFunction
? Either way you'd be better off explicitly specifying the parameter types and return type likeclickEvent: (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 hasOutput
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 knowfunction
is a keyword, but i wasnt sure what the proper type was for what I was looking for. Maybe it is in factFunction
. 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
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
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%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
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
2
function
is a keyword in JavaScript. Maybe you meantFunction
? Either way you'd be better off explicitly specifying the parameter types and return type likeclickEvent: (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 factFunction
. Thank you!– Fallenreaper
Nov 19 at 18:37