As part of the deal, Saliba will return to the Ligue 1 side next season on loan before heading to the Emirates Stadium in 2020.
No financial details were disclosed, but British media reports said the fee for the 18-year-old was about 27 million pounds to be paid in installments.
“We’re delighted William is joining us,” Arsenal manager Unai Emery said in a statement. Many teams wanted him, but he decided he wanted to come to us and be part of our future.
“He will stay in France next season for more experience and then we look forward to him joining our group.”
Saliba, who signed his first contract at the age of 17, made his professional debut with St Etienne against Toulouse last September and finished the campaign with 14 league starts under his belt.
“This is the biggest club in England for me, so it was an easy decision,” Saliba said.
“I didn’t think twice about signing here, so I’m really happy.
“This is a big club, and when you come here, you need to be ready. So I’m going to try to have a great season with the club that developed me in order to be ready for Arsenal.”