typescript - 如何在 Vue3 Typescript 中动态调用组件的方法?
问题描述
我有一个需要动态调用方法的 vuejs 代码,它基于从呈现浏览器(在 Lua 中)的另一个应用程序调度的事件。
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
name: 'App',
methods: {
methodA() {
console.log('method A called');
},
methodB() {
console.log('method B called');
},
methodC() {
console.log('method C called');
},
},
mounted() {
window.addEventListener('message', (data:any) => {
// @ts-ignore: Unreachable code error
if (this[data.data.method]) {
// @ts-ignore: Unreachable code error
this[data.data.method]();
}
});
},
});
</script>
我想知道一种正确编译它的方法,而不必使用 ts-ignore 绕过 Typescript 编译器。
有谁知道没有 ts-ignore 我怎么能做到这一点?欢迎使用类型断言或类似方式,我只想在没有这些注释的情况下编译我的代码。
PS:这是我的第一个问题,如果我做错了什么,请见谅。
解决方案
推荐阅读
- mongodb - $match 在 mongodb 中使用 _id 进行聚合是一个对象
- python - 将多个 csr_matrix 馈送到 tensorflow 中的 feed_dict
- r - 如何使用 For 循环在 3X450 中创建新变量
- node.js - 如何将带有参数的 curl 转换为在 node.js 中工作
- ruby-on-rails - Rails/Mongoid 与 Struct 的关系问题
- python - 我在使用 python 安装 pip 时遇到问题,该怎么办?
- javascript - 如何解决:输入不起作用/购物车问题
- apache-kafka - 有没有办法检测 FAILED kafka connect 任务
- spring-boot - 无法在 Spring Boot 中将肥皂请求与“Mulriref”绑定,如何解决?
- python - 如何在泰坦尼克号数据集中根据性别用平均年龄填充年龄?