В typescript структурная тпизация. Ему похрен какой класс породил объект. Если порождённый объект структурно совпадает с сигнатурой(сигнатуры всех свойств и методов совпадают), то такой объект проходит по условию:
class Foo {
a!: number;
b!: number;
}
function bar(arg:Foo) {};
const randomObj = {a:1, b:2, c:5};
bar(randomObj); // ok
Потому ты не можешь "исключить определенный класс", как в принципе не можешь и ограничить "определенным классом", любые ограничения могут быть лишь структурными.
Ты можешь запретить объект с определённым набором свойств на вход, но это ограничит не только "определенный класс", но и любые другие классы порождающие объект с подобным набором полей.
Костыль - добавить нужному классу пустое приватное свойство и ограничивать по нему.