Invalid prop: type check failed for prop : <p>I created a countdown with Vue.js but I am having trouble showing the values I am getting. I have two components and I have read the single file component guide from Vue but I just don't seem to understand what it is that I am doing wrong. In the console I get the follow error: </p>

<blockquote>
  <p>[Vue warn]: Invalid prop: type check failed for prop "date". Expected Number, got String.</p>
</blockquote>

<p>Though in my code it is defined as a number.</p>

<p><strong>app.js</strong></p>

<pre><code>import './bootstrap.js';

import Echo from 'laravel-echo';
import Vue from 'vue';

import CurrentTime from './components/CurrentTime';
import Bitbucket from './components/Bitbucket';
import InternetConnection from './components/InternetConnection';
import LastFm from './components/LastFm';
import PackagistStatistics from './components/PackagistStatistics';
import RainForecast from './components/RainForecast';
import Placeholder from './components/Placeholder';
import Youtube from './components/Youtube';
import ProjectCountdown from './components/ProjectCountdown';
import Countdown from './components/Countdown';


Vue.component('countdown', Countdown);

new Vue({

el: '#dashboard',

components: {
    CurrentTime,
    InternetConnection,
    Bitbucket,
    LastFm,
    PackagistStatistics,
    RainForecast,
    Placeholder,
    Youtube,
    ProjectCountdown,
    Countdown
},

created() {
    this.echo = new Echo({
        broadcaster: 'pusher',
        key: window.dashboard.pusherKey,
        cluster: 'eu',
        encrypted: true
    });
},
});
</code></pre>

<p><strong>ProjectCountdown.vue</strong></p>

<pre><code>&lt;template&gt;
&lt;div id="dashboard"&gt;
    &lt;Countdown date="March 20, 2017 12:00"&gt;&lt;/Countdown&gt;
    {{days}}
&lt;/div&gt;
&lt;/template&gt;

&lt;script&gt;
import Grid from './Grid';
import Vue from 'vue';
import Countdown from './Countdown';

export default {

components: {
    Grid,
    Countdown,
},

props: {
    grid: {
        type: String,
    },
},

data() {
    return {

    }
}
}



// Vue.filter('two_digits', function (value) {
//     if(value.toString().length &lt;= 1)
//     {
//         return "0" + value.toString()
//     }
//     return value.toString();
// });
&lt;/script&gt;
</code></pre>

<p><strong>Countdown.vue</strong></p>

<pre><code>&lt;template&gt;
&lt;div&gt;
    {{ seconds }}
&lt;/div&gt;
&lt;/template&gt;


&lt;script&gt;
import Vue from 'vue';
export default {

props: {
    date: {
        type: Number,
        coerce: str =&gt; Math.trunc(Date.parse(str) / 1000)
    },
},
data() {
    return {
        now: Math.trunc((new Date()).getTime() / 1000)
    }
},
ready() {
    window.setInterval(() =&gt; {
        this.now = Math.trunc((new Date()).getTime() / 1000);
    },1000);


},
computed: {
    seconds() {
        return (this.date - this.now) % 60;
    },
    minutes() {
        return Math.trunc((this.date - this.now) / 60) % 60;
    },
    hours() {
        return Math.trunc((this.date - this.now) / 60 / 60) % 24;
    },
    days() {
        return Math.trunc((this.date - this.now) / 60 / 60 / 24);
    },
},
}
&lt;/script&gt;
</code></pre>
