Trout contract is not that bad. His deal is over at 38, and yes the back end of that contract is not great. But if you get great years to 35, and he fills your ballpark that contract is fine in my opinion. Trout is a superstar player he is the one of the few you give the 10 year contract to (At His age), you don't give it to a player like Lindor, specifically when there is a ton of SS available in the offseason coming up.
I much rather give position players long-term contract than starting pitchers. I would not go more than 5 years on pretty much any pitcher.
The problem for the mets is I realize if they want to compete in the next 5 years they are going to need to add starting pitching and yes that means overpaying in this market most likely. Otherwise they should trade Degromm and get a haul, which they will not do in my opinion.