I am trying to call an Angular function with the function's string name but angular is throwing an error.
const functionName = 'getFilelist';
if (this[functionName]) {
this[functionName]();
}
CodePudding user response:
You should be able to use a type assertion here so TypeScript knows that the key you are calling is on the object you are trying to index.
For example, this[functionName as keyof typeof ApplicationFormComponent]
. This should tell TypeScript you are accessing a proper element on the class.
CodePudding user response:
The following code snippet should work. Just declare the type of functionName
as keyof ApplicationFormComponent
.
test() {
const functionName: keyof ApplicationFormComponent = 'getFilelist';
if (this[functionName]) {
this[functionName]();
}
}