A
Size: a a a
A
A
V
useState + useEffect( addEventListener(‘resize’, setState
A
A
G
M
Ti
export function useDebounce(func: any, delay: number) {
const [id, setId] = useState<NodeJS.Timeout | null>(null);
return useMemo(
(...args) => {
if (id) {
clearTimeout(id);
} else {
setId(
setTimeout(() => {
setId(null);
func(...args);
}, delay)
);
}
},
[func]
);
}
Ti
V
РФ
execute
не требует, чтобы при вызове аргумент был объектомРФ
T
в определении Script
РФ
const script: Script = createBuiltinScript({...});
script.execute(undefined)
РФ
T
в определении Script
Script
, а не execute
AL
РФ
AM
EM
function required<T>(param: T, msg: string) {
if (param !== undefined) {
return param;
} else {
throw Error(msg);
}
}
EM
const val = required(someVar, ‘error’); // val: ’string’ | undefined
K
function required<T>(param: T, msg: string) {
if (param !== undefined) {
return param;
} else {
throw Error(msg);
}
}