• vue3 ts中常用的类型推断


    一.全局定义的方法类型推断


    通常在组件中是不需要定义全局变量的,直接使用即可,但这里会有一个问题,ts会检测当前变量的类型或者是组件的语法等,在编译阶段会报错,那么如何解决这个问题呢?

    1.将挂载在vue实例上的变量对象按需导入到当前组件

    1. //vue3取消了filters,推荐使用计算属性等来替代,但是又不想这么做的话,就可以导入模块的方式
    2. filters.ts
    3. export const filters1 = (): {}=>{}
    4. export const filters2 = (): {}=>{}
    5. export const filters3 = (): {}=>{}
    6. .vue
    7. import filters from './filters'

    2.给vue来扩展一些方法、变量类型,不用导入就可以直接使用

    1. //扩展一下vue module 文件放置于项目根目录
    2. declare module "vue" {
    3. interface ComponentCustomProperties {
    4. $fomatter: any; //可以设置进行类型推导
    5. }
    6. }
    7. export {}; //记得必须添加这个到处标记

    二.组件内ts断言语法

    1.针对数组的类型断言

    1. //使用map 对于未定义上层类型的对象来讲 最好强制这样,对于响应式数组还得使用reactive
    2. let json_obj = {}
    3. (json_obj.arr as Array | any[] ).map()

    2.当然的联合类型

    1. ref与reactive定义下的响应式变量如果具有空的联合类型,ts null提示
    2. 可以考虑使用 ! 或者 ? 进行强制进一步推断
    3. 类如:
    4. const mini = ref<string | null | undefined>();
    5. mini.value!.toString()
    6. mini.value?.toString()

    本次发文 本年定当笔耕不辍。

  • 相关阅读:
    Mybatis-plus
    每天一道算法题——动态规划
    数据结构——常见简答题汇总
    09 多线程与高并发 - CompletableFuture 源码解析
    JavaWeb之Mybatis进阶
    kafka整合springboot以及核心参数的使用
    自动化之Java面试
    .Net中字符串不变性与相等判断的特殊场景
    Qt moc: Too many input files specified
    linux安装FSL
  • 原文地址:https://blog.csdn.net/museions/article/details/126659232