【问题标题】:DHX Scheduler undefinedDHX 调度程序未定义
【发布时间】:2026-01-25 03:35:02
【问题描述】:

我开始使用带有 TS 和组合 API 的 VueJs 3。

我发现了这个tutorial,关于如何在 VueJs 中导入调度程序。

不幸的是,它并没有完全涵盖我的情况,因此我发现了一些麻烦。

具体来说,我遇到了这个错误:

调度器未定义

在他们建议使用的 cmets 中:

/*global scheduler*/
import 'dhtmlx-scheduler'

但它不再找到调度程序:

TS2304:找不到名称“调度程序”。

IDE 建议我像这样导入它:

import { scheduler } from 'dhtmlx-scheduler'

但是,即使在这种情况下,调度程序也是未定义的。

【问题讨论】:

    标签: typescript vue.js undefined scheduler vuejs3


    【解决方案1】:

    要将 dhtmlx-scheduler 与 TypeScript 一起使用,请确保在 SchedulerStatic 类型之外导入 dhtmlx-scheduler

    import 'dhtmlx-scheduler'
    import { SchedulerStatic } from 'dhtmlx-scheduler'
    

    那么你可以像这样使用window.scheduler

    const scheduler: SchedulerStatic = (window as any).scheduler
    scheduler.init(/*...*)
    

    基于docs的TypeScript 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>
    

    【讨论】: