Newcastle United have signed attacker Harvey Barnes from Leicester City on a five-year contract, the Premier League club said on Sunday.