@input
, если ты не знал. (потому что v-model="val"
- это сахар для @input="val = $event" :value="val"
). as any
идёт на помощь, если нельзя но очень хочется. Если ты уверен в том, что ты делаешь и уверен что TS пристаёт к тебе почём зря - всегда можно так сделать.) Главное десять раз подумать - не намекает ли тебе TS на какую-то неявную ошибку. Opt
нет word
, но он там может быть и при этом может быть совершенно произвольного типа, что приведёт к ошибкам в рантайме. По этому ts и требует конкретики.class MySuperElement extends HTMLElement {
hello = 42
}
declare global {
interface HTMLElementTagNameMap {
'my-super-element': MySuperElement
}
}
createElement('img', {alt: 'alt text'}) // ok
createElement('div', {alt: 'alt text'}) // err
Ты разобрался с коллбэками? Переходи к промисам:
На пальцах:
Есть функция
foo(значение, коллбэк, колбэкПриОшибке).
Делаем из неё функцию возвращающую промис:
Получаем промис:
промис = bar(значение)
Пробрасываем колбэки:
промис.then(resolve, reject)
Если присмотреться, то видно, что промис по сути просто пробрасывает через then переданные коллбэки. Промис - это просто объект для хранения, пробрасывания и выстраивания в цепочку колбэков. Не более и не менее.
Когда поймёшь промисы - переходи к
async await
- там тоже ничего сложного.Когда поймёшь всё - для тебя не будет проблемой преобразовать любой класс как тебе нужно за пару строк.