Not sure how to determine the types of function parameters

Is it possible to replace the anys in the following code snippet? I want to eliminate the TypeScript warning "Unexpected any. Specify a different type"

interface Props {
    isPrime: boolean;
}
interface Other {
    isEdit: boolean;
}
type TFunc = (a: any, b: any) => any;
const myFunc = (c: TFunc) => (a: any) => (b: any) => c(a, b);

const funcA = myFunc((props: Props, other: Other) => {
    // ..somecode
}
// Code to call the result of func A etc.

Answer №1

Implement a generic approach


interface Info {
  isLoggedIn: boolean;
}
interface Details {
  hasPermission: boolean;
}
type CustomFunc<T, U> = (x: T, y: U) => any;
const customFunction = <T, U>(z: CustomFunc<T, U>) => (x: T) => (y: U) => z(x, y);

const funA = customFunction<Info, Details>((info: Info, details: Details) => {
  // ..custom code here
});

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Looking for assistance with transitioning Prototype JavaScript code to jQuery?

Having previously utilized Prototype for enhancing interactivity in our web applications, we are now considering transitioning to jQuery for better support within Visual Studio. We are aware of the jQuery.noConflict option for running both libraries simul ...

Trigger the function upon successful completion of Stripe Checkout

I have a requirement in my Nodejs/Express API to execute a series of confirmation code once the checkout process is successfully completed in Stripe by the client. Below is the checkout function responsible for handling the checkout phase: // Checkout con ...

Methods for determining the disparity in days between two dates and the ratio of days yet to come

Within my React project, I am in need of a functionality that calculates the number of days remaining between two specific dates. Essentially, I want to determine how many days are left from today until the expiration date, and then calculate the percentag ...

"Tips for stopping users from using Ctrl+U to view page source in

Is there a way to prevent users from viewing the source code (HTML + JavaScript) of a page by disabling Ctrl+U in the browser? ...

Unable to perform a fetch request in IE9 after the page has finished loading

I'm currently encountering an issue with my Node and Express server setup. I have a separate API on a different server that needs to be accessed, but everything works fine except in IE9. The problem arises when I try to make a call to the API after lo ...

Transform an array of strings into an array of floating point numbers using AngularJS

Hey everyone! I'm having trouble converting an array of strings into floats. When using map(parseFloat), I'm only getting integer numbers. Could the issue be with the commas in 40,78 causing parseFloat to interpret it as 40 instead of 40.78? Her ...

The object type in Typescript prohibits direct access to its properties

Currently, I am facing an issue while trying to define a variable with the Object type and initialize it with a property. When attempting to access that property, an error message 'Property ____ does not exist on type Object' is displayed. I have ...

Guide to selectively hovering over a single object with raycasting

I'm encountering an issue with my code that handles object "hovering". The problem arises when multiple objects overlap and can be hovered over simultaneously if the meshes intersect at the mouse point. Although I know that the intersections array is ...

A reflective key error has occurred because the token was not properly defined!

My current setup includes Angular version 2.4.4. However, I encountered an issue when trying to declare a service resolver and register it in both the component module and router. import { Injectable } from '@angular/core'; import { Resolve, Ac ...

Accessing the Node API with a GET request should be the first step taken before proceeding with

In my front-end setup, I have implemented an interceptor that automatically adds an Authorization header if a JWT token exists. There are 2 APIs in play: one for authorization checks and the other for handling data requests (the focus of my work). My goa ...

Is there a way to increase the size of the icon without altering the dimensions of the button?

After implementing a code snippet to enable a button to copy the URL to the clipboard, I encountered an issue. Originally, the button displayed the text "copy," which changed to "copied" after clicking on it and reverted back after 2 seconds. However, I d ...

Utilize the JavaScript Email Error Box on different components

On my website, I have implemented a login system using LocalStorage and would like to incorporate an error message feature for incorrect entries. Since I already have assistance for handling email errors on another page, I am interested in applying that sa ...

Is the parent node of the input element the input element itself?

When working with a DOM object obj of type <input>, I encountered an issue where attempting to obtain its parent node using obj.parentNode resulted in the same obj being returned. Is this behavior specific to <input> objects? What other types o ...

Error message HMR Webpack was found to be invalid

When using Webpack, I keep encountering the following error message: Invalid HMR message, along with a lengthy JSON string. Unfortunately, I couldn't find any helpful resources to assist me in debugging this issue. Do you have any suggestions? https ...

What steps can I take to minimize the flashing of this fixed navigation bar?

My fixed navigation bar fades out when scrolling down the page and reappears when scrolling up, which all works well. However, I have noticed that if I do this very quickly with short movements, around 20 times, it doesn't have enough time to complete ...

Incorporating HTML themes within ReactJS

While I am still relatively new to ReactJS, I am eager to expand my understanding of it with this question. I have a preexisting HTML/CSS theme that I would like to integrate into a React application. Is there a method to incorporate this theme seamlessly ...

Implementing NPM commands in Jenkins using shell scripting

Whenever I attempt to run the "npm" command, I encounter a syntax error. Users/Shared/Jenkins/Home/workspace/projectName/npm test ^^^^ SyntaxError: Unexpected identifier This is the Jenkins Build shel ...

Issues with functionality in Bootstrap tabs are causing them to not operate

I am encountering an issue with bootstrap tabs. On the bootstrap tabs links, I have added my page ID before the #link. It works fine from ID 1 to 9, but after ID 10 and above, it shows an error page not found. Here is how the browser behaves: If I click on ...

Issue with vue-class-component: encountering TS2339 error when trying to call a method within

My vuejs application is being built using vue-cli-service. After a successful build, I encountered TS2339 errors in my webstorm IDE: Test.vue: <template> <div>{{method()}}</div> </template> <script lang="ts"> impor ...

Activate the Chrome Extension that allows you to open a link in a new tab with just a middle click or regular click, without closing the popup

When I try to click a link in my extension popup and open it in a new tab using "middle click -> open link in a new tab", the popup closes. Is there a way to keep the popup open so I can click on multiple links from my extension without interruption? A ...