as
это кастование в тип. Ты говришь TS: "этот массив такого типа, пошёл нафиг". Чтоб он проверял что там, типы надо указывать заранее, условно:const data: {
tasks: TaskInterface[];
} = {
tasks: [{
name: 'Create app',
description1: 'Use smth to do this Use smth to do this Use smth to do this Use smth to do this Use smth to do this Use smth to do this Use smth to do this Use smth to do this',
time: '02.12.2021'
},
{
name: 'Fix bugs',
description1: 'Fix all bugs',
time: '02.12.2021'
},
]
}
const {get, set, ...rest} = Object.getOwnPropertyDescriptor(Element.prototype, 'innerHTML');
// поиск индекса в списке нужных элементов, если надо
function indexOf(element) {
// список элементов, среди которых мы ищем
const list = document.querySelectorAll(`#content .container div[id^="q_"] .card-header`);
return Array.prototype.indexOf.call(list, element);
}
Object.defineProperty(Element.prototype, 'innerHTML', {
...rest,
// подмена получения innerHTML
get() {
let innerHTML = get.call(this);
const index = indexOf(this);
if(index !== -1) {
console.log('Получаем innerHTML у элемента с индексом %d', index, this, innerHTML);
}
return innerHTML;
},
// подмена установки innerHTML
set(innerHTML) {
const index = indexOf(this);
if(index !== -1) {
console.log('Устанавливаем innerHTML у элемента с индексом %d:', index, this, innerHTML);
}
return set.call(this, innerHTML);
}
});
`#content .container div[id^="q_"] .card-header`
написать '*'
и прологировать все вызовы innerHTML.
Клики соответственно будут на сам input.