a.someField = new C();
должно показывать ошибку? Но ошибки не будет, потому что TS структурно сравнивает типы, и класс C по мнению тайпскрипта реализует интерфейс Foo, хотя и не написано про implements Foo явно как над ними издеваются чайники
const Child: React.FC = React.memo(() => {
const [state, setState] = useState(..)
useLayoutEffect(() => {
const func = () => {
setState(...);
};
someObservable.on('eventName', func);
return () => {
someObservable.off('eventName', func);
};
}, [setState])
return ...
})
у автора видимо очень старая версия TS