Только ручками, тайпскрипт за вас это чинить не будет.
// Класс здесь не нужен. Старайтесь предпочитать интерфейсы классам если у объекта нет методов
export interface NameSurName {
name: string;
surname: string;
}
...
this.nameSurName = {
name: '',
surename: 'Иванов',
...resp.data
}
На вопрос "почему так" ответ: тайпскрит не добавляет в код никакой магии. Конечный код скомпилированный из тайпскрипта выглядет в JS почти так же как и с тайпскриптом, только без типов. Короче, TS не занимается преобразованием типов за вас.
Вот есть
официальный playground от создателей. Можно ради интереса иногда попроверять что получится из вашего TS кода.