1***@qq.com
1***@qq.com
  • 发布:2022-03-22 11:33
  • 更新:2024-03-06 13:06
  • 阅读:4907

vue3 在uni上挂载一个$u变量怎么写让TS能识别此变量

分类:uni-app

TS报错

类型“Uni”上不存在属性“$u”。ts(2339)

2022-03-22 11:33 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com

declare global {  
    interface Uni {  
        $router: Router;  
    }  
}
  • 2***@qq.com

    declare module 'uview-plus' {

    global {

    interface Uni {

    $u: any

    }

    }

    }


    可以换成这样

    2023-03-10 01:46

2***@qq.com

2***@qq.com

在src下创建一个*.d.ts的文件,例如:index.d.ts
文件里面放以下代码
declare module "uview-plus" {
global {
interface Uni {
$u: any;
}
}
}
在tsconfig.json下引入路径
"typeRoots": [
"@/types/index.d.ts"
]

者行孙

者行孙

src 或者 src 的子目录里创建一个 *.d.ts 文件,例如 uni.d.ts

namespace UniApp {  
  interface Uni {  
    $u: any;  
  }  
}

记得把 any 换成你自己定义的类型

1***@163.com

1***@163.com

为什么我加了校验文件还是不行呢

  • 4***@qq.com

    我也是一样,有解决方案吗?

    2022-08-10 17:58

2***@qq.com

2***@qq.com - 前端

同问,有什么解决办法

1***@qq.com

1***@qq.com

加个// @ts-ignore跳过校验吧

8***@qq.com

8***@qq.com

env.d.ts

declare module 'uview-plus' {  
  export function install(): void  

  interface test {  
    /** 邮箱格式校验 */  
    email(email: string): boolean  
  }  
  interface $u {  
    test: test  
  }  

  global {  
    interface Uni {  
      $u: $u  
    }  
  }  
}  

缺的都要一一补充

店小二丶

店小二丶 - 江湖小二

我引入了 <reference types="@dcloudio/types" /> 感觉和声明有冲突,有人遇到过么,如果去掉这个引入就可以,但是加上就不行

小sap啊

小sap啊

declare interface Uni {
/**

  • uv的ui框架的全局属性
    */
    $uv: any;
    }
  • 小sap啊

    在 src 或者 src 的子目录里创建一个 *.d.ts 文件,例如 uni.d.ts,ts的配置需要配置了src与src子文件夹的d.ts的包含项

    2023-09-04 17:11

快乐的琪宝贝

快乐的琪宝贝

在模板中使用$u呢

要回复问题请先登录注册