function fn(x: number | Array<number>, y: number | Array<number>): void {
const arrX = Array.isArray(x) ? x : [x];
const arrY = Array.isArray(y) ? y : [y];
arrX.forEach((xs)=>{
arrY.forEach((ys)=>{
})
})
}
fn(1,2)
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 ...
})
Выбираем наибольшую сторону коробки, которая не превосходит высоту. Ставим коробку чтобы это ребро было вертикально. Задача превращается в двумерную, где вариантов только 2: либо упереть угол основания коробки в угол сектора и смотрим, что R^2 >= a^2 + b^2, либо размещаем основание под 45 гр. к сторонам сектора и смотрим, что другие два угла не вылезли - там надо убедиться, что R^2 >= a^2 / 2 + (a+b)^2 / 2, где a и b - стороны основания коробки, a <= b