Я провел некоторое тестирование, и оно должно работать.Обычно я использую это в классах CSS, поэтому я не был уверен, поэтому я протестировал это в минималистском приложении, и даже в стиле это работает.
style = "background-color: black; width: calc (100% - 1000px); "
Проблема, с которой вы столкнулись, заключается в том, что вы получите ширину от родителя?
Использование директивы ngStyle, кажется, делает это правильно.Проверено и работает.
<div [ngStyle]="{ 'width': 'calc(100% - ' + width + 'px)' }">