Donald Trump has announced that James "Mad Dog" Mattis, the retired Marine Corps general, will serve as his secretary of defence.

Gen Mattis, 66, would need a Congressional waiver to serve in the cabinet as he was on active duty within the last seven years, only retiring in 2013.

"We are going to appoint Mad Dog Mattis as our secretary of defence," Mr Trump told a rally in Cincinnati on Thursday night.

"He's our best. They say he's the closest thing to (World War II-era) general George Patton that we have," he declared. He said the formal announcement would be made on Monday.