# Introduce type

Last modified: 16 October 2024

The Introduce Type refactoring extracts a type that is inside of another type. Also, you can use this refactoring for converting the anonymous structure type to a named type.

For example, the extract operation might look like this. Consider the following JSON.

```
"email": "noah.poulsen@example.com", {...}
```

If you paste it to GoLand's editor and convert it to a struct type, you will get the `T` struct type with another `Location` struct type inside. The `T` struct is valid and you can continue working with it. But you might want to embed the `Location` type differently. See the following animation.

1. In the editor, click a type that you want to extract.
2. Click Refactor | Extract/Introduce and select Introduce Type.

The animation shows how GoLand converts the anonymous structure type to a named type. You can try the Introduce Type refactoring with the following code snippet.

```
package main {...}
```
