Olá Patrick, vc tem razão, pois estou utilizando o Angular 1.6, porém acredito que a forma com que os dados são retornados, pode-se utilizar algo parecido no angular 2, ainda não parei para estudar.
Vou mostrar como faço pra pegar o bairro, cep, etc. na versão 1, talvez ajude.
$scope.buscarCep = function(){
if($scope.cep.length >= 8){
$http.get("https://viacep.com.br/ws/"+$scope.cep+"/json/").then(function(response){
$scope.endereco = response.data ;
console.log(response.data);
}).catch(function(){
console.log("DEU ERRO");
});
// Na minha view eu faço isso:
{{endereco.cep}}
{{endereco.logradouro}}
{{endereco.uf}}
ng-model="endereco.bairro" --> Como os dados de retorno está em formato JSON, pode-se manipulá-lo como tal.
Att,