In this tutorial, I will explain how to declare and use TypeScript interfaces with nested arrays of objects. As a TypeScript developer, you should understand that how to work with nested structures is crucial for building complex applications, especially when dealing with data from APIs or databases.
What is a TypeScript Interface?
A TypeScript interface is a way to define the structure of an object. It ensures that the object adheres to a specific shape, which can include properties, methods, and nested objects. Interfaces are a powerful feature in TypeScript, providing type safety and improving code readability.
Declare a Basic Interface
Let’s start with a simple example. Suppose we have an interface for a Person object:
interface Person {
firstName: string;
lastName: string;
age: number;
}This interface defines a Person with three properties: firstName, lastName, and age.
Check out How to Use TypeScript Interface Function Properties?
Nested Arrays of Objects
Now, let’s move on to a more complex scenario where we have a nested array of objects. Consider an example where each Person has a list of Address objects. Here’s how we can define this using TypeScript interfaces:
interface Address {
street: string;
city: string;
state: string;
zipCode: string;
}
interface Person {
firstName: string;
lastName: string;
age: number;
addresses: Address[];
}In this example, the Person interface includes an addresses property, which is an array of Address objects. Each Address object has properties for street, city, state, and zipCode.
Read Define and Use TypeScript Interface Array of Objects
Example with Nested Arrays of Objects
To make this more concrete, let’s consider a scenario where we have a list of people, and each person has multiple addresses. Here’s how you can create and use these interfaces in TypeScript:
const people: Person[] = [
{
firstName: "John",
lastName: "Doe",
age: 30,
addresses: [
{
street: "123 Main St",
city: "Springfield",
state: "IL",
zipCode: "62701"
},
{
street: "456 Elm St",
city: "Chicago",
state: "IL",
zipCode: "60601"
}
]
},
{
firstName: "Jane",
lastName: "Smith",
age: 25,
addresses: [
{
street: "789 Maple Ave",
city: "Los Angeles",
state: "CA",
zipCode: "90001"
}
]
}
];In this example, people is an array of Person objects. Each Person has a firstName, lastName, age, and an array of Address objects. This structure allows you to represent complex data relationships in a type-safe manner.
Conclusion
In this tutorial, we explored how to declare and use TypeScript interfaces with nested arrays of objects.
You may also like:

I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.