Fala Rafael,
Foi utilizada a negação dupla (!!), colocando o operador lógico NÃO ( ! ) duas vezes para converter o valor da variável transferencias
em seu valor booleano real.
Como transferencias
era um atributo da classe AppComponent
e havia sido inicializado como um array vazio, seu valor booleano era true.
transferencias: any[] = [];
console.log(!transferencias); //false
console.log(!!transferencias); //true
O primeiro operador ! retorna um valor booleano contrário da variável transferencias e o segundo ! contradiz o resultado e retorna o oposto. É a negação da negação, vamos chamar assim :)
Assim, ao utilizar a negação dupla, o valor de transferencias retornaria true e iria satisfazer a condição do ngIf de só renderizar a tabela caso houvessem transferencias.
E já que transferencias é um array, podemos verificar o seu tamanho e escrever a condição dessa outra forma também:
*ngIf="transferencias?.length > 0"
Espero ter ajudado, bons estudos!