• 标注返回值

    标注返回值

    因为 Vue 的声明文件天生就具有循环性,TypeScript 可能在推断某个方法的类型的时候存在困难。因此,你可能需要在 rendercomputed 里的方法上标注返回值。

    1. import Vue, { VNode } from 'vue'
    2. const Component = Vue.extend({
    3. data () {
    4. return {
    5. msg: 'Hello'
    6. }
    7. },
    8. methods: {
    9. // 需要标注有 `this` 参与运算的返回值类型
    10. greet (): string {
    11. return this.msg + ' world'
    12. }
    13. },
    14. computed: {
    15. // 需要标注
    16. greeting(): string {
    17. return this.greet() + '!'
    18. }
    19. },
    20. // `createElement` 是可推导的,但是 `render` 需要返回值类型
    21. render (createElement): VNode {
    22. return createElement('div', this.greeting)
    23. }
    24. })

    如果你发现类型推导或成员补齐不工作了,标注某个方法也许可以帮助你解决这个问题。使用 —noImplicitAny 选项将会帮助你找到这些未标注的方法。