Вы не можете этого сделать по замыслу. Это приведет к тому, что B будет существовать в подвешенном состоянии, где, как утверждается, он совместим с A (поскольку он расширяет A), но также несовместим с A (поскольку он не имеет тех же свойств publi c, что и A).
Следующая функция должна быть вполне подходящей для написания:
function doStuff(param: A) {
param.methodOne();
}
Но одним из преимуществ создания подклассов является полиморфизм. Функция doStuff не должна беспокоиться о том, было ли ей передано что-то, что в буквальном смысле является A, или вместо этого было передано что-то, что происходит от A. Typescript поддерживает это, и поэтому будет рассматривать обе следующие строки как совершенно нормально (если B расширяется от A):
doStuff(new A())
doStuff(new B())
Для того, чтобы это работало, B должен иметь все те же свойства, что и A. У него может быть больше, но не может быть меньше.
Если вы не хотите иметь те же свойства, что и A, я рекомендую не расширять его.