Creating a response definition for a blind input extension in TypeScript

example.ts

export const action = (data: Record<any, any>) => {
  data.updatedDate = new Date();
  return data;
};

data.ts

import {action} from '../lib/action'

class User {
  username: string;
  password: string;
}
const result = action(User);
console.log(result.updatedDate)

Can the output type of the function action be customized to extend an unspecified input?

Answer №1

If you're looking to achieve this, consider utilizing intersection types. By allowing type T to inherit from anything that inherits from object, such as Record<...>, you can make it happen.

const result = <T extends Record<any, any>>(input: T): T & { updatedAt: Date } => {
    // Your implementation 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

Guide on crafting a query with typeorm query builder to extract specific data from the database

I'm a beginner with typeorm in nodejs/nestjs and I'm struggling to create a query to filter course data by instructor's firstname and lastname, course name, and subject. I've tried using 'where' and 'orWhere' but can ...

What is the best way to open and view files in an NPM dependency that do not use JavaScript?

I am facing an issue with an NPM project setup where my-config is a dependency of my-api. In the my-config project, there is a line of code that fetches the aws-config.ini file from the etc folder: instance.configs.aws = ini.parse(fs.readFileSync('./ ...

Using Angular to automatically update the user interface by reflecting changes made in the child component back to the parent component

Within Angular 5, I am utilizing an *IF-else statement to determine if the authorization value is true. If it is true, then template 2 should be rendered; if false, then template 1 should be rendered. Below is the code snippet: <div *ngIf="authorized; ...

Encountering an error with Angular 7: "global is not defined" issue while trying to include a package

While developing an Angular 7 application, I encountered an issue after adding a package using npm install dragula --save and importing it into the pollyfills.ts file. The error message I received was: index.js:2 Uncaught ReferenceError: global is not d ...

Achieving intellisense functionality in TypeScript without the use of classes

Just dipped my toes into TypeScript, attempting to convert this basic JavaScript code to TypeScript. Here is the JavaScript code snippet: Item = {} Item.buy = function (id) {} Item.sell = function (id) {} I prefer not to use classes and would like to ut ...

Can you explain how to adjust the font size for table data in OfficeGen?

I am currently utilizing officeGen library to automatically create word documents. generateDocumentService.js: var generateReportFromTableData = function (tableData) { console.log('tableData: ', tableData); var docx = officegen({ type: &a ...

Error message "Uncaught in promise" is being triggered by the calendar function within the Ionic

Can someone assist me in creating a calendar feature for my app? My concept involves a button with text that, when clicked by the user, opens a calendar. However, I am encountering an error message: ERROR Error: Uncaught (in promise): TypeError: Cannot set ...

Error encountered when utilizing Meteor in conjunction with TypeScript

Currently, I am in the process of building a web application using Meteor and TypeScript within the Nitrous.io cloud development environment. After installing the TypeScript compiler, I integrated TypeScript libraries from https://github.com/meteor-typesc ...

Combining two objects in Typescript using the spread operator and creating a reusable type

Is there a more streamlined way to dynamically add a question mark to a variable type in TypeScript, or is the approach of rewriting the type with a question mark the best way to achieve this? I'm looking to ensure that the original variables remain r ...

Custom CSS identifier for interactive MuiButton text element

I've been searching for a CSS selector to target this dynamic date element, which is identified as MuiButton-label. While I can currently locate it using xpath in Playwright code, I'm hoping to find an alternative method using a CSS selector. Tha ...

Ways to decline requests using interceptors depending on the content of the request?

Is there a way to achieve a status of 200 and stop the controller call if a certain key in the request payload meets my criteria? I've implemented Interceptors in my application, but I'm struggling to send a status of "200" without causing an ex ...

How to handle type errors when using properties in Vue3 Single File Components with TypeScript

I've hit a roadblock while attempting to utilize properties in Vue3. Despite trying various methods, I keep facing issues during the type-check phase (e.g.: yarn build). The project I'm working on is a fresh Vue3-ts project created using Vite. B ...

Using React.ReactNode as an argument in Storybook

This is a unique button component type that I have created import React from 'react' export type ButtonProps = { label: string; color?:'primary' | 'secondary' | 'tertiary'; size?:'mobile' | 'tabl ...

What is the best way to utilize criteria in TypeScript?

I'm curious about how to get these if and else conditions to function properly. It's frustrating that it's not working as expected. Any assistance would be greatly appreciated. if (element > 9) { Array.from(counter).forEach((element: ...

Creating a TypeScript type that allows for the possibility of being undefined

I have a project where I am converting Scala code to TypeScript. In Scala, there is a predefined type called Option which can either be a specific type or undefined. In TypeScript, we usually represent it like this: var myVar : MyType | undefined = await ...

What benefits does Option offer over TypeScript's optional `?` operator when it comes to typing?

As I embark on my journey with the fp-ts library, a question arises in my mind: What benefits does the Option type offer compared to TypeScript's standard method of handling optional values using the question mark ? operator? ...

What is Prettier's reasoning for suggesting the use of `;` before a destructuring assignment declaration?

I am facing an issue with the if block within my Angular component: if (desc.length > 0) { [this.errorMsg] = desc } The problem arises as Prettier suggests adding a ; at the start of the destructuring assignment: if (desc.length > 0) { ;[thi ...

What's with all the requests for loaders on every single route?

I'm in the process of setting up a new Remix Project and I'm experimenting with nested routing. However, no matter which route I navigate to, I keep encountering the same error: 'You made a GET request to "/", but did not provide a `loader` ...

Can TypeScript declaration doc comments be translated and displayed in hover info and suggestion descriptions in VS Code?

English is not my native language, so I am wondering if there are translated versions available for the boxes that appear when hovering over a declaration to provide descriptions/documentation. For instance, with the String.prototype.split() method: ...

Visualizing hierarchical data in Angular 12 using D3 tree with clickable navigation links

I'm facing a challenge in displaying a routerLink within my d3.tree(). I've attempted to do so like this: .append("a") .html(`<a [routerLink]="/mycomponent" fragment="1.1">link to user component</a>`); However, the following code wor ...