The 19-year-old, who signed his first professional terms with Sussex in October 2017, scored his maiden first-class century earlier this season in the win over Durham at Arundel.
Reacting to his new deal, the Sussex Academy graduate said: “I’m delighted to have signed a new contract here at my home club and I’m looking forward to seeing what the future holds.”
Sussex head coach, Jason Gillespie added: “Tom’s a young player who I believe has a big future in the game and I’m very pleased that he has signed on with the club for the next chapter of his career.
“He made the most of his call-up against Durham in the Championship earlier this season and I am sure if he continues to perform he will have plenty more opportunities to come.”
Haines has now played four first-class matches since his debut in August 2016. He has scored 154 runs at an average of 30.8 including a top score of 124.