Vue具有Typescript类型的道具在编译时的检查

时间:2018-08-23 09:07:59

标签: javascript typescript vue.js compilation

我正在将Vue.js与Typescript一起使用。 代码很简单。 (带有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>

当然,如果我将字符串作为道具传递给Child组件,则它可以正常工作而不会发出警告或错误。然后传递数字,它将在运行时显示警告,如下所示。

enter image description here

但是编译没有错误。有什么方法可以检查“ COMPILE”时间的类型?

1 个答案:

答案 0 :(得分:1)

将评论转换为答案...

当我遇到类似的问题时,这与Vue如何处理将道具从模板传递到组件有关。如果使用value =“ 1”,则传递一个字符串;如果使用:value =“ 1”,则传递一个数字。这确实令人困惑,您只能在运行时看到它,因为模板尚未编译。