reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;
reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
normalizeRules.reduce((acc: string, rule) => acc.replaceAll(rule, ""), input);
// or
normalizeRules.reduce<string>((acc, rule) => acc.replaceAll(rule, ""), input);
type OverloadProps<TOverload> = Pick<TOverload, keyof TOverload>;
type OverloadUnionRecursive<TOverload, TPartialOverload = unknown> = TOverload extends (
...args: infer TArgs
) => infer TReturn
? // Prevent infinite recursion by stopping recursion when TPartialOverload
// has accumulated all of the TOverload signatures.
TPartialOverload extends TOverload
? never
:
| OverloadUnionRecursive<
TPartialOverload & TOverload,
TPartialOverload & ((...args: TArgs) => TReturn) & OverloadProps<TOverload>
>
| ((...args: TArgs) => TReturn)
: never;
type OverloadUnion<TOverload extends (...args: any[]) => any> = Exclude<
OverloadUnionRecursive<
// The "() => never" signature must be hoisted to the "front" of the
// intersection, for two reasons: a) because recursion stops when it is
// encountered, and b) it seems to prevent the collapse of subsequent
// "compatible" signatures (eg. "() => void" into "(a?: 1) => void"),
// which gives a direct conversion to a union.
(() => never) & TOverload
>,
TOverload extends () => never ? never : () => never
>;
// Inferring a union of parameter tuples or return types is now possible.
type OverloadParameters<T extends (...args: any[]) => any> = Parameters<OverloadUnion<T>>;
type OverloadReturnType<T extends (...args: any[]) => any> = ReturnType<OverloadUnion<T>>;
__tests__
на том же уровне, что и тестируемый файл. Локальные моки там же, глобальные для пекеджей согласно документации библиотеки для тестирования, а свои глобальные уже смотреть надо, в фсд можно в шейрд запихнуть.The setting you are looking for is "compact folders". You can get there by going to: File → Preferences → Settings → explorer.compactFolders and then unchecking the box.
Параметр, который вы ищете, это «компактные папки». Вы можете попасть туда, выбрав: Файл → Настройки → Настройки → explorer.compactFolders, а затем сняв флажок.
function helloFunc<T extends object, K extends keyof T>(arg: {
nameKey: K,
object: T
}) {
console.log(`Привет, ${arg.object[arg.nameKey]}`)
}
const condition = {
exclude: [{
disabled: true
}],
include: [{
rating: 24
}]
}
const getFiltered = (data, filters) => {
const {
include,
exclude
} = filters;
let filteredData = data;
if (include) {
const includeEntries = include.flatMap(filter => Object.entries(filter));
filteredData = filteredData.filter(value =>
includeEntries.every(([key, valueFilter]) => value[key] === valueFilter)
);
}
if (exclude) {
const excludeEntries = exclude.flatMap(filter => Object.entries(filter));
filteredData = filteredData.filter(value =>
excludeEntries.every(([key, valueFilter]) => value[key] !== valueFilter)
);
}
return filteredData;
}
/(\s*)(?<![\w\dА-ЯЁа-яё\-])[Сс][Оо][Уу][Сс][\w\dА-ЯЁа-яё\-]*(\s*)/g
str.replace(
/(\s*)(?<![\w\dа-яё\-])соус[\w\dа-яё\-]*(\s*)/ig,
(_, leftSpaces, rightSpaces) => leftSpaces && rightSpaces ? ' ' : ''
)