使用带有TypeScript和Vue SFC的全局枚举

使用带有TypeScript和Vue SFC的全局枚举,typescript,vue.js,Typescript,Vue.js,我试图用TypeScript声明一个枚举,然后在Vue SFC中使用它。它在使用枚举时起作用,例如ModalType。在中无,但在中不起作用。我得到这个错误 在src/components/Modal.vue:17:30: 为什么它在模板中工作,而在脚本中不工作?我不想每次使用该类型时都导入它,这就是我使用global.d.ts的原因 我看了一下,但那个解决方案不起作用 global.d.ts declare const enum ModalType { None, Success,

我试图用TypeScript声明一个枚举,然后在Vue SFC中使用它。它在使用枚举时起作用,例如
ModalType。在
中无
,但在
中不起作用。我得到这个错误

在src/components/Modal.vue:17:30:

为什么它在模板中工作,而在脚本中不工作?我不想每次使用该类型时都导入它,这就是我使用
global.d.ts
的原因

我看了一下,但那个解决方案不起作用

global.d.ts

declare const enum ModalType {
  None,
  Success,
  Danger,
  Warning,
}
Modal.vue

<template>
  <div v-if="type === ModalType.None"></div>
</template>

<script lang="ts">
  import { defineComponent, PropType } from 'vue';

  export default defineComponent({
    props: {
      type: {
        type: String as PropType<ModalType>,
        default: null,
      },
    },
    computed: {
      isNone(): boolean {
        return this.type !== ModalType.None;
      },
    },
  });
</script>

从“vue”导入{defineComponent,PropType};
导出默认定义组件({
道具:{
类型:{
类型:字符串作为PropType,
默认值:null,
},
},
计算:{
isNone():布尔值{
返回this.type!==ModalType.None;
},
},
});