TypeScript ThisParameterType<Type> Utility Type
Last Updated :
24 Apr, 2025
In this article, we are going to learn about ThisParameterType<Type> Utility Type in Typescript. TypeScript is a popular programming language used for building scalable and robust applications. In TypeScript, the ThisParameterType<Type> utility type is used to extract the type of this parameter in a function type. It allows you to capture the type of context (or instance) on which a function is expected to be called.
Syntax
type ThisContext = ThisParameterType<SomeFunctionType>;
Where-
- ThisContext is the name you choose for the type that represents this context.
- ThisParameterType is the utility type.
- SomeFunctionType is the type of the function from which you want to extract this context.
Approach: Let us see how we can use thenThisParameterType<Type> step-by-step:
Step 1: First, define a function or method for which you want to capture this parameter type:
function logMessage(this: { timestamp: string }, message: string) {
console.log(`[${this.timestamp}] ${message}`);
}
Step 2: Apply the ThisParameterType<Type> utility to the function or method type to capture the type of this within the function:
type LogMessageThis = ThisParameterType<typeof logMessage>;
Step 3: You can then use the captured type to specify the expected context for this when defining methods or functions:
const context: LogMessageThis = { timestamp: "2023-09-15" };
logMessage.call(context, "Hello, Geek!");
Step 4: Now, you can pass the parameter having this data type.
Example 1: In this example, We have a logMessage function that expects to be called with a context that has a timestamp property. ThisParameterType<typeof logMessage> extracts the type of this parameter in the logMessage function, which is { timestamp: string }. We created a context object that matches the expected context type. This is how we used ThisParameter.
JavaScript
function logMessage(this: { timestamp: string }, message: string) {
console.log(`[${this.timestamp}] ${message}`);
}
type LogMessageThis = ThisParameterType<typeof logMessage>;
const context: LogMessageThis = { timestamp: "2023-09-15" };
logMessage.call(context, "Hello, Geek!");
Output:

Example 2: In this example, We define a Greeting type that represents an object with a message property and a method. The method uses the this parameter to access the message property. We create an object myGreeting that conforms to the Greeting type. The sayHello method is called on myGreeting, and it correctly logs the message "Hello, GeeksforGeeks!" because TypeScript ensures that the this context inside sayHello refers to the myGreeting object and It is done implicitly.
JavaScript
type Greeting = {
message: string;
sayHello(this: Greeting): void;
};
const myGreeting: Greeting = {
message: "Hello, GeeksforGeeks!",
sayHello() {
console.log(this.message);
},
};
// Outputs: "Hello, GeeksforGeeks!"
myGreeting.sayHello();
Output:

Conclusion: In this article, we have seen the use of ThisParameterType<Type> and it's syntax. Since it can also be done implicitly without using 'ThisParameterType<Type>', As it is build in typeScript already. If we use ' ThisParameterType<Type>' for getting the data type by 'this' then it will be explicit type.
Similar Reads
TypeScript OmitThisParameter<Type> Utility Type
In this article, we are going to learn about OmitThisParameter<Type> Utility Type in Typescript. TypeScript is a popular programming language used for building scalable and robust applications. In TypeScript, the OmitThisParameter<Type> utility type is used to create a new function type
3 min read
TypeScript ThisType<Type> Utility Type
The TypeScript ThisType<Type> utility type allows you to define the type of this within a specific object or function context, providing precise type checking for methods and properties accessed through this. The ThisType<Type> utility type is primarily used to provide type annotations f
3 min read
TypeScript ReturnType <Type> Utility Type
The ReturnType<Type> utility type in TypeScript extracts and infers the return type of a given function type. It enhances type safety and reusability by allowing developers to dynamically determine the type of values returned by functions without manually specifying them. Syntaxtype ResultType
3 min read
Typescript Partial<Type> Utility Type
The Partial<Type> utility in TypeScript creates a new type by making all properties of an existing type optional. This allows you to create flexible object types where only some properties are required, streamlining code and reducing redundancy when working with complex data structures. What i
4 min read
Typescript Required<Type> Utility Type
TypeScript's Required<Type> utility type creates a new type by making all properties of an existing type mandatory. It removes optionality from each property, ensuring that all fields must be provided, which enhances type safety and reduces potential errors in type definitions. Syntax type Req
3 min read
TypeScript InstanceType<Type> Utility Type
In this article, we are going to learn about InstanceType<Type> Utility Type in Typescript. TypeScript is a popular programming language used for building scalable and robust applications. In TypeScript, the InstanceType<Type> utility type is used to extract the instance type of a constr
3 min read
TypeScript Omit<Type, Keys> Utility Type
TypeScript's Omit<Type, Keys> utility type creates a new type by excluding specific properties (Keys) from an existing type (Type). It is useful for refining types by removing unnecessary properties, enhancing type safety, and simplifying complex type definitions in TypeScript applications. Sy
4 min read
TypeScript ConstructorParameters<Type> Utility Type
The TypeScript ConstructorParameters<Type> utility type extracts the parameter types from a constructor function Type. It enhances type safety by enabling the creation of instances with correct constructor arguments, ensuring functions use the precise types expected by the constructor. Syntaxt
3 min read
TypeScript NonNullable<Type> Utility Type
In this article, we are going to learn about NonNullable<Type> Utility Type in Typescript. TypeScript is a popular programming language used for building scalable and robust applications. In TypeScript, the NonNullable<Type> utility is used to create a new type by removing null and undef
2 min read
TypeScript Pick<Type, Keys> Utility Type
TypeScript's Pick<Type, Keys> utility type allows you to create a new type by selecting specific properties (`Keys`) from an existing type (`Type`). This is useful for narrowing down types to only the relevant properties, enhancing type safety, and reducing redundancy in complex type definitio
4 min read