Вот добавит он новое значение, как узнать, что в переменной они все перечислены, а не часть?
как бы вы без него обошлись?
type Methods = {
checkInput(event: any): number;
checkInput(event: any, storeID:number, itemID:number): number;
};
export default {
methods: {
checkInput (event: any, storeID?:number, itemID?:number): number {
if(storeID) {
// code
}
},
} as Methods
}
apply.call(console[level], console, argsWithFormat);
console[level].apply(console, argsWithFormat);
apply
- тоже функция, и у неё, как у любой функции, есть метод call
, как раз из прототипа. async emailSend(mailData: IMail<Record<string, unknown>>) {
async emailSend(mailData: IMail<IEmailUser | IEmailOther1 | IEmailOther2 | etc>) {
async emailSend<T extends Record<string, unknown>>(mailData: IMail<T>)
базово на каждую новую n придется сделать O(r-l) итераций для поиска максимумов и минимумов
итого O(n * (r - l)), там может (r - l) сильно меньше n.
но если они таки сравнимы с n, то ещё навскидку кажется (хотя и нельзя сказать наверняка), что для вычисления max и min в очередной группе можно применить тот прием со стеком, который используется для вычисления оных на sliding window. Последняя группа смещается похожим образом. Если так, то будет вообще линейно.