Вы возвращаете несколько типов, чтобы машинопись не знала, что именно это за тип, поэтому вы должны привести возвращаемое значение к ожидаемому типу для правильной работы intellisense.
let tst1 = factory1.create('test1') as Test1;
или
let tst1 = <Test1>factory1.create('test1');