Почему метод stati c компонента ts * на основе класса ts, объявленный в. vue, может работать только в блоке сценария. vue?
шаги для воспроизведения
- используйте vue -cli3 для запуска проекта машинописи и добавьте shims- vue .d.ts
declare module "*.vue" {
import Vue from "vue";
export default Vue;
}
добавить
Comp. vue файл в вашем проекте, как показано ниже
// Comp.vue
<template>
<div></div>
</template>
<script lang="ts">
import { Component, Vue, Prop } from "vue-property-decorator";
@Component
export default class Comp extends Vue {
mounted() {
}
created(){
}
static notWorkFunc(){
//anything
}
}
export function anotherNotWorkFunc(){
//anything
}
</script>
добавить
test.ts и
test. vue в вашем проекте с указанным c кодом, как показано ниже
test. vue
<script lang="ts">
import ComP,{anotherNotWorkFun} from "./Comp.vue";
ComP.notWorkFunc()
anotherNotWorkFun()
</script>
test.ts
import ComP,{anotherNotWorkFun} from "./Comp.vue";
ComP.notWorkFunc()
anotherNotWorkFun()
Как видите,
в .ts не работает
в . vue работа
Я не знаю причину ...
Репо https://github.com/WilkinWendy/vue-ts-problem.
Демокод находится в ./src / demo
FYI