For the Sweet Potato Filling:
Peel and chop sweet potatoes. Boil or steam until fork-tender, about 15–20 minutes. Drain and mash until smooth.
In a large bowl, combine mashed sweet potatoes, sugar, melted butter, eggs, vanilla, milk, cinnamon, and a pinch of salt. Mix until smooth.
Pour the sweet potato mixture into a greased 9x13-inch baking dish and spread evenly.
For the Streusel Topping:
In a medium bowl, mix brown sugar and flour.
Stir in melted butter until crumbly.
Fold in chopped pecans.
To Assemble and Bake:
Sprinkle streusel topping evenly over the sweet potato filling.
Bake at 350°F (175°C) for 30–35 minutes until the topping is golden brown.
Let rest for 10 minutes before serving for best texture.