我正在使用带有Typescript的Vue.js。代码很简单。(使用vue-class-component和vue-property-decorator)
<script lang="ts">
import { Component, Prop, Vue } from 'vue-property-decorator';
@Component
export default class Child extends Vue {
@Prop(String) private value!: string;
}
</script>当然,如果我将string作为props传递给子组件,它将在没有警告或错误的情况下工作。然后传递number,它在运行时显示警告,如下所示。

但在编译时没有错误。有没有办法在“编译”的时候检查类型?
发布于 2019-02-18 11:12:47
将评论转换为答案...
当我遇到类似的问题时,它与vue如何处理将道具从模板传递给组件有关。如果你使用value="1“,传递一个字符串,如果你使用:value="1”,那么传递一个数字。这确实令人困惑,而且你只能在运行时看到它,因为模板没有编译。
https://stackoverflow.com/questions/51982115
复制相似问题