Para ignorar o obsoleto ::ng-deep, geralmente desativo ViewEncapsulation. Embora essa não seja a melhor abordagem, ela me serviu bem.
Para desativar ViewEncapsulation, faça o seguinte em seu componente:
import { Component, ViewEncapsulation } from '@angular/core';
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.scss'],
encapsulation: ViewEncapsulation.None
})
export class HeaderComponent {
}
Isso tornará os estilos .scss neste componente globais para todo o aplicativo. Para não permitir que os estilos subam na cadeia de componentes pai e irmão, envolva todo o scss com o seletor assim:
app-header {
}
Agora, os estilos especificados aqui irão para os componentes filhos, então você precisa ser mais específico com seus seletores de css e cuidar de seus p's e q's ao adicionar CSS (talvez adicionar o seletor filho especificado em seu aplicativo Angular e então seus estilos).
Eu digo que não é a melhor abordagem por causa do parágrafo acima, mas isso me serviu bem.
::ng-deepnão vai a lugar nenhum. Sempre será uma configuração que você pode ativar. Não há absolutamente nenhuma maneira de removê-lo agora sem uma reação massiva da comunidade. Veja quantos resultados retornaram para esta pesquisa github.com/search?q=%3A%3Ang-deep&type=Code - é como dizer que a!importantpropriedade css vai desaparecer