#typescript #vue.js #undefined #scheduler #vuejs3
Вопрос:
Я начинаю использовать VueJS 3 с TS и api композиции.
Я нашел этот учебник о том, как импортировать планировщик в VueJS.
К сожалению, это не полностью охватывает мой случай, и поэтому я нахожу некоторые проблемы.
В частности, я сталкиваюсь с этой ошибкой:
планировщик не определен
В комментариях они предлагают использовать:
/*global scheduler*/
import 'dhtmlx-scheduler'
но тогда он больше не находит планировщика:
TS2304: Не удается найти имя «планировщик».
IDE предлагает мне импортировать его следующим образом:
import { scheduler } from 'dhtmlx-scheduler'
Но даже в этом случае планировщик не определен.
Ответ №1:
Для использования dhtmlx-scheduler
с TypeScript обязательно импортируйте dhtmlx-scheduler
в дополнение к SchedulerStatic
типу:
import 'dhtmlx-scheduler'
import { SchedulerStatic } from 'dhtmlx-scheduler'
Тогда вы могли бы использовать window.scheduler
вот так:
const scheduler: SchedulerStatic = (window as any).scheduler
scheduler.init(/*...*)
Пример SFC машинописного текста на основе документов:
<template>
<div ref="scheduler"></div>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
import 'dhtmlx-scheduler'
import { SchedulerStatic } from 'dhtmlx-scheduler'
export default defineComponent({
name: 'scheduler',
props: {
events: {
type: Array,
default: () => []
}
},
mounted() {
const scheduler: SchedulerStatic = (window as any).scheduler // eslint-disable-line
scheduler.skin = 'material'
scheduler.config.header = [
'day',
'week',
'month',
'date',
'prev',
'today',
'next'
]
scheduler.init(this.$refs.scheduler as HTMLElement, new Date(2020, 0, 20), 'week')
scheduler.parse(this.$props.events)
}
})
</script>
<style>
@import "~dhtmlx-scheduler/codebase/dhtmlxscheduler_material.css";
</style>