Is the usage of the custom param decorator limited to controllers in NestJS?

Can the custom param decorator in nestjs be used outside of a controller? I am attempting to apply it on a function parameter within a class, but when I call that function, it gives an error saying it expects 1 argument, indicating that the decorator is not applied,

Here is a snippet of the code

import { createParamDecorator } from '@nestjs/common'

// Custom parameter decorator
const MyParamDecorator = createParamDecorator((data, req) => {
    return 'DefaultParameterValue'
})

class MyClass {
  myFunction(@MyParamDecorator() param?: string) {
    console.log('Parameter value:', param)
  }
}

const instance = new MyClass()
instance.myFunction() 

Answer №1

Parameter decorators serve as a guide for the framework on how to manage parameters in different parts of the code. They are specifically designed to work within controllers, resolvers, and gateways, where the developer takes control over the execution of the code. In services, however, these decorators are not applicable, as the framework handles the internal functions. Developers have the responsibility of correctly passing data and variables in these designated areas.

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

Is there a way to enhance Backbone.Events within a Typescript ES6 Class?

Trying to incorporate Backbone's Events properties into a TypeScript class has hit a roadblock. Here's what I'm encountering... class Foo { constructor () { _.assign(this, Backbone.Events); // or _.extend() this.stopList ...

Is it possible for Promise.all to accept an array containing only non-Promise elements?

Promise.all typically resolves when all promises in its array resolve. However, there is an instance where one element of the input array is not a promise https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise/all#Using_Promi ...

Error in Typescript due to delegate function not being recognized post minification

Here is a code snippet that uses delegate: <pre> $.ajax(this.validateURL, { type: "post", url: this.validateURL, data: JSON.stringify(i), contentType: "application/json; charset=utf-8", dataType: "json", success: i => t.pro ...

Is it possible to listen to an audio file using bytes stored in an arraybuffer?

After receiving a buffer array from a Java-created REST endpoint that returns a byte[] array, I successfully retrieved the array using Angular for HTTP. Now, my goal is to play the audio in the browser. Through research, I came across the Web Audio API, bu ...

What are the differences between an optional property and a non-optional property?

Let's say I am working on creating an array of type CoolObject. What would be the better approach if some objects have the property format, while others do not? // Option 1 export interface CoolObject { name: string; color: string; ...

The function '() => Promise<T>' cannot be assigned to type 'Promise<T>'

Here is an interface I have: export interface ITreeViewItem { getChildren: Promise<ITreeViewItem[]>; ... Now, let's take a look at the implementation of it: export class MyClass implements ITreeViewItem { public async getChildren() ...

Steps to fix the issue of 'Property 'foo' lacks an initializer and is not definitely assigned in the constructor' while utilizing the @Input decorator

What is the proper way to initialize a property with an @Input decorator without compromising strict typing? The code snippet below is triggering a warning: @Input() bar: FormGroup = new FormGroup(); ...

Is it necessary to separate Lodash orderby functions to ensure they function correctly?

For some reason, I'm having trouble sorting my data using lodash in my front-end client code. All the examples I've come across don't involve working with data in an interface, so I can't figure out where I'm going wrong. Let&apo ...

Creating definitions for nested objects in TypeScript

I am dealing with a set of URLs for different buttons. These URLs are requested when the user clicks on one of three buttons: Input, Output, and StandardReport. The StandardReport button opens a window that contains three more buttons named Define, Valida ...

The Redux state fails to update on the initial attempt

I have encountered an issue with my state setup and reducer logic. Here is how my state is initialized: const initialState: PhotoState = { photos: [], }; The reducer function is defined as follows: const initialState: PhotoState = { photos: [], }; ex ...

What in the world is going on with this Typescript Mapped type without a right-hand side?

I encountered a situation where my React component had numerous methods for toggling boolean state properties. Since these functions all did the same thing, I wanted to streamline the process by creating a common function for toggling properties. Each met ...

Using Element as a type parameter in a React/Typescript function

In my React project using Typescript, I am working on creating a generic collection. The current setup is as follows: class List<T> { constructor(data: any){...} } This code allows me to create a list of a specific type. My goal is to perform a ...

Angular TypeScript subscription unit testing

Here is a code snippet for a Helper class: export class Helper { static unsubscribeSubscriptions(subscriptions: Subscription[]): void { subscriptions.forEach(subscription => { if (subscription) { subscription.unsubscribe(); } ...

What is the reason behind TypeScript's lack of reporting an incorrect function return type?

It's surprising to see that TypeScript 4.4.3 does not identify an invalid type for the callback function. It makes sense when the function returns a "non-promise" type, but when it returns a Promise, one would expect TypeScript to recognize that we ne ...

Dynamic property Key in TypeScript

Imagine receiving data from a search engine in the following format: const resultDe = { details_de: "Ein paar Informationen", foo_de:{bar:"barDe"}, code: "1C60" } const resultEn = { details_en: "Some information", fo ...

What is the equivalent of getElementById in .ts when working with tags in .js?

Looking to incorporate Electron, Preload, Renderer with ReactJS and TypeScript into my project. <index.html> <body> <div id="root" /> <script src='./renderer.js'/> </body> <index.ts> const root = Re ...

Restricting union types by a specific property

I'm facing an issue when attempting to narrow down a type based on a property. To explain it better, here's a simplified version in code: type User = { id: number; name: string; } type CreateUser = { name?: string; } const user: User | Cr ...

Utilizing the useRef hook in React to retrieve elements for seamless page transitions with react-scroll

I've been working on creating a single-page website with a customized navbar using React instead of native JavaScript, similar to the example I found in this reference. My current setup includes a NavBar.tsx and App.tsx. The NavBar.tsx file consists o ...

Checking the alignment of celestial bodies for an array of entities

Seeking to implement validation for a form featuring checkbox selections with corresponding number inputs. When a user selects a profession checkbox, they must enter the number of years of experience they have in the input next to it. The array structure i ...

Identify when the Vue page changes and execute the appropriate function

Issue with Map Focus Within my application, there are two main tabs - Home and Map. The map functionality is implemented using OpenLayers. When navigating from the Home tab to the Map tab, a specific feature on the map should be focused on. However, if th ...