Are you running into the “No index signature with parameter of type ‘string’ was found on type” error and don’t know how to fix it? Don’t worry! Because in this tutorial, we will show you some of the most common methods to solve this problem.
Reproduce the “No index signature with parameter of type string was found on type” error
Example:
Let’s say we have this object and a key that has the type of string
, and we want to access the key property of the object.
const obj = { name: "Helen", age: 29, address: "123xyz", email: "[email protected]", job: "Doctor" }; var key = "name" as string; console.log(obj[key]);
Output:
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{ name: string; age: number; address: string; email: string; job: string; }'.
No index signature with a parameter of type 'string' was found on type '{ name: string; age: number; address: string; email: string; job: string; }'.
And we will run into this error. This is because we are using a string to index a property of an object.
How to fix this error?
Using type annotations
Since we cannot use a string
to index an object’s property, we can set the object type to any
to avoid this error
const obj: any = { name: "Helen", age: 29, address: "123xyz", email: "[email protected]", job: "Doctor" }; var key = "name" as string; console.log(obj[key]);
Output:
"Helen"
Using a type assertion
Another way to fix this error is to use type assertion. When using type assertion, the compiler will understand the value as a specific value. Example:
We use as
so that the compiler will understand the type that we assigned to str
is string
.
Let’s apply them to fix our problem:
const obj = { name: "Helen", age: 29, address: "123xyz", email: "[email protected]", job: "Doctor" }; var key = "name" as string; console.log((obj as any)[key]);
Output:
"Helen"
Type assertion with the proper type
Using any
type will only help you avoid the error, not keep your code type-safe. So, try to cast the object with the proper type:
Completed code:
const obj = { name: "Helen", age: 29, address: "123xyz", email: "[email protected]", job: "Doctor" }; var key = "name" as string; console.log(obj[key as keyof typeof obj]);
Output:
"Helen"
Summary
In this tutorial, we have shown you some ways to fix the “No index signature with parameter of type ‘string’ was found on type” error. This problem often occurs when using a string to index an object with specific keys. You can use type annotations or type assertions to set the type and object to avoid this error. But I recommend casting the object with a proper type. Thank you for reading!
Maybe you are interested:
- Property ‘style’ does not exist on type ‘Element’ in TS
- Property ‘replaceAll’ does not exist on type ‘string’
- Type ‘string or undefined’ is not assignable to type string

Hello. My name is Khanh Hai Ngo. I graduated in Information Technology at VinUni. My advanced programming languages include C, C++, Python, Java, JavaScript, TypeScript, and R, which I would like to share with you. You will benefit from my content.
Name of the university: VinUni
Major: EE
Programming Languages: C, C++, Python, Java, JavaScript, TypeScript, R