return [setRef, isIntersecting] as const;
const arr = [1, 'text', true]
- имеет тип по умолчанию Array<string | number | boolean>
, а значит если мы сделаем так: arr[0] *= 2;
тайпскрипт будет жаловаться на то что arr[0]
не точно number
, а может ещё быть и string
и boolean
. as const
мы даём тайпскрипту знать, что этот массив никогда не будет меняться и по сути является кортежем.const useOnScreen = (option?: IntersectionObserverInit): [Dispatch<SetStateAction<HTMLDivElement | undefined>>, boolean] => {
но это излишне многословно, как по мне.) src
никак не влияет на работу базового хука, те изменения, что внёс чувак, нужны если элементы вырисовываются по условию{condition ? <A ref={ref}/> : <B/>}
) - не твой случай.params
и showInfo
как props. <template>
<span data-toggle="tooltip" v-on="$listeners" v-bind="$attrs">
<slot/>
</span>
</template>
<script>
export default {
mounted() {
$(this.$el).tooltip()
}
}
</script>
<td>
<b-tooltip v-if="box.fefco == '0201'" data-html="true" data-title="<img class='d-block m-1 mx auto'
src='/img/0201.jpg'>">Fefco 0201 — четырехклапанная</b-tooltip>
</td>
if(type === "people") {
if(subtype === "adult") ...
else if ...
else if ...
else if ...
} else if ...
один раз пишем боль-мене сложный тип-преобразователь "тип структуры" - "тип приведённый выше"
Сорян, для express у меня нет конфига, но eslint + ts - это больная тема.)