vue2.x+ts项目,在props type导入自定义接口类型报‘xxx‘ only refers to a type, but is being used as a value here处理办法

2023-11-03

一、报错 ‘xxx’ only refers to a type, but is being used as a value here

在Props中使用自定义类型约束时,报上面的错误。然后 我在网上查找教程,找到一个说在ts中导出class 接口,虽然没有报错,但是按照我的下面的定义,在父组件中传入data值,会报错误。那如何改动呐?

export class popType {
  title: {
    name: string;
    nameStyle?: style;
  };
  content: {
    text: string;
    textStyle?: style;
  };
  confirmButton?:{
      open:boolean,
      text:string,
      textStyle?: style;
  }
}

在这里插入图片描述

二、使用 as来完成改动

在vscode中通过ctrl+鼠标左键找到了props的声明文件,在声明文件中,type的声明如下

export interface PropOptions<T=any> {
  type?: PropType<T>;
  required?: boolean;
  default?: T | null | undefined | (() => T | null | undefined);
  validator?(value: T): boolean;
}
export type PropType<T> = Prop<T> | Prop<T>[];
export type Prop<T> = { (): T } | { new(...args: never[]): T & object } | { new(...args: string[]): Function }
由上面可以知道type的类型,必须是这样{ (): T } | { new(...args: never[]): T & object } | { new(...args: string[]): Function },所以我们平时定义的
export interface popType {
  title: {
    name: string;
    nameStyle?: style;
  };
  }
  这样的接口是不行的(不是函数类型),所以会报错,这也是为什么网上会有人说把export interface popType{},改为export class popType{},就能通过

知道了原理,让我们改一下文件

import { PropType } from 'vue';
import { popType } from './type/popType';//自己定义的类型

popData: {
      type: Object as PropType<popType>,//断言
      default: () => {
        return {
          title: {
            name: '无',
            nameStyle: {
              textAlign: 'center',
              fontSize: 16,
              color: '#333',
              fontFamily: 'PingFangSC-Semibold',
              margin: 'auto'
            }
          },
          content: {
            text:'无',
            textStyle: {
              textAlign: 'left',
              fontSize: 16,
              color: '#333',
              fontFamily: 'PingFangSC-Semibold',
              margin: '0'
            }
          },
          confirmButton: {
            open: false
          }
        };
      }
    }

这样就在使用中就不会报错了

如果有问题,欢迎指出
ps:欢迎大家关注(内心os:‘快点来关注吧 ( ̄▽ ̄)"’)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue2.x+ts项目,在props type导入自定义接口类型报‘xxx‘ only refers to a type, but is being used as a value here处理办法 的相关文章

  • 解决vxe-table复选框翻页选中问题

    解决vxe table复选框翻页选中问题 根据vxe table官方文档 想要保留勾选中的数据 我们的代码中需要设置 row id 和 checkbox config中的 reserve 属性 vxe table官方文档 简单写下html部
  • Vue如何将数据显示在页面中

    如何将data的数据显示在页面中 1 文本插值 div msg div 渲染结果 div hello world div 2 原始HTML插值 v html v text 区别 v text不会对标签进行转义而v html会对标签进行一次转
  • vue+C#后台上传excel处理数据

    比较简洁的excel处理方法 希望对大家有所帮助 1 界面
  • Vue学习(五)登陆页面之重置和发起登陆请求及弹窗提示

    Vue学习 五 登陆页面之重置和发起登陆请求及弹窗提示 表单重置 根据预验证结果决定是否发出登陆请求 编写代码 启动api服务器 弹窗提示 表单重置 直接调用element ui给我们写好的函数就可以了 获取当前表单的实例对象 通过这个实例
  • Vue js引用警告 “export ‘default‘ (imported as ‘xxx‘) was not found

    问题原因 ES6 编译器识别问题 如果在public js这样写会有警告export default imported as xxx was not found export const myMixin 解决办法 修改组件中引用js的地方
  • Vue中的import from

    Vue中的import from 大家都知道 import from 是用来引入一些文件的 在vue中 可能有 js文件 json文件 vue文件 在JS和JSON文件引入的时候 往往需要写入一些 例如数组 export const a 例
  • ant-design-vue 全局和局部引入组件

    1 全局引入 在main js里面引入 import Vue from vue import ant design vue dist antd css import Antd from ant design vue Vue use Antd
  • uni-app项目中使用scss语法

    最近正在学习uni app开发 我先把文档浅略翻了遍 发现组件和接口几乎都是按照微信小程序走 但是视图层上的语法又是按照vue的语法走的 所以开发过程一定要注意这点 然后我想在uni app项目中使用scss语法 但是具体怎么安装呢 历经曲
  • H5查看pdf文件(pdfh5)

    我用的是 pdfh5 来查看的H5中的pdf文件 使用 pdfh5 插件来打开 pdf文件 下面是两种使用方法 方法一 二都可以 但是我在使用方法二时有卡顿现象 可能是因为未开启懒加载 方法二中的 on 可以打印出来错误信息 使用方法 1
  • 前端将List列表转化为树型结构(reduce函数)

    主要用到了reduce 函数 for循环可以做到的事情reduce 都可以做到 甚至操作起来更加简单方便和高雅 reduce 为数组中的每一个元素依次执行回调函数 不包括数组中被删除或从未被赋值的元素 reduce语法 array redu
  • vue_table导出excel

    vue直接导出对应table const exportClick gt const wb XLSX utils table to book document querySelector newTables 关联dom节点 get binar
  • 快速入手 vue3 defindeModel 双向绑定数据,赶快了解下

    彩蛋 在vue3 3x 版本中 官方 RFC 放出了 一个新特性 defineModel 它将让我们在自定义组件上双向绑定数据更加快捷 举个 以前我们父子组件双向数据绑定要在子组件里声明对应的props emts computed 子组件
  • 大数据毕业设计之前端03:logo、menu的折叠展开实现

    关键字 BuildAdmin pinia logo aside menu 菜单折叠 Vue ElementUI 前言 上一篇文章中 借助aside的实现讲了一些开发的小技巧 以及css的解读 本篇文章主要写一下如何填充aside的内容 as
  • 黑豹程序员-自定义表单实现门户自定制

    功能 用户可以实现欢迎页面自己定制 数据由数据库表进行维护 原理 页面利用div进行布局 拖动div记录其坐标 并写库 页面加载时从数据库表中读取div坐标和数据即可 效果图
  • 黑豹程序员-自定义表单实现门户自定制

    功能 用户可以实现欢迎页面自己定制 数据由数据库表进行维护 原理 页面利用div进行布局 拖动div记录其坐标 并写库 页面加载时从数据库表中读取div坐标和数据即可 效果图
  • 执行tsc -v命令后报错‘tsc‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。怎样解决?

    分析 tsc v 这个命令主要是查看typescript编译器的版本号的 也可以用于检查typescript是否安装好了 是否正常 1 如果没有安装的话 就去安装 可以使用 npm ls typescript 查看本地是否安装typescr
  • [黑马程序员TypeScript笔记]------一篇就够了

    文章目录 1 TypeScript 介绍 TypeScript 是什么 TypeScript 为什么要为 JS 添加类型支持 TypeScript 相比 JS 的优势 2 TypeScript 初体验 安装编译 TS 的工具包
  • vue项目日期处理day.js

    dayjs安装 1 npm 安装 npm install dayjs save 2 项目使用 import dayjs from dayjs ES 2015 dayjs format 使用介绍 1 秒 获取或设置秒 接受0到59的数字 如果
  • vue中的防抖和节流

    在Vue中 防抖和节流是两种常用的优化技术 用于限制事件的触发频率 以提高页面性能 防抖 Debounce 是指在事件被触发后 等待一段时间后再执行回调函数 如果在这段等待时间内 事件又被触发 则重新计时 防抖通常用于限制重复触发频率较高的
  • Vue3 和Vue2的区别,以及钩子函数的使用

    Vue js 3 和 Vue js 2 是两个主要版本的流行前端框架 它们之间有很多区别 包括性能优化 新特性和改进的API等 以下是一些Vue 3与Vue 2之间的主要区别 以及一些示例代码来说明这些差异 1 性能优化 响应式系统 Vue

随机推荐

  • 嵌入式入门教学——C51(中)

    嵌入式入门教学汇总 嵌入式入门教学 C51 上 嵌入式入门教学 C51 中 嵌入式入门教学 C51 下 文章中所使用到的所有代码模块 免费 基于STC89C52RC的代码模块资源 CSDN文库 目录 七 矩阵键盘 八 定时器和中断 九 串口
  • win10常用操作集合 - vhd/wsl/等等

    文章目录 wsl常用操作 cli操作 vhd常用操作 UI操作 扩容 缩容 方法一 常规方法 方法二 碎片整理 常见问题1 win10 UI 基本配置 win10网络配置 防火墙配置 wsl常用操作 cli操作 前提 BIOS要使能虚拟化相
  • MATLAB搜索路径的查看和设置方法

    MATLAB搜索路径的查看和设置方法 1 查看matlab的搜索路径 单击matlab主界面菜单工具栏中的 设置路径 按钮 打开 设置路径 对话框 左侧的几个按钮用来添加目录到搜索路径 还可以从当前的搜索路径中移除选择的目录 右侧的列表框列
  • 静态代码检查-Sonar-环境安装(一)

    1 前提 1 安装mysql数据库 5 6以上版本 本人数据库版本5 7 2 安装jdk1 8 本人jdk版本1 8 2 官网下载 https www sonarqube org downloads 最新版本6 7稳定版 选择 Show a
  • 密码学 / 哈希算法

    一 诞生原因 在日常生活中 每个人去银行 坐火车都需要身份证证明自己的身份 身份证存在的目的就是要证明我真的是我 同样在网络中 一个文件是否被改过 更改之后就是新的文件 需要一个 身份证 证明 这里就需要了 hash 算法了 二 特点 为了
  • 黑马并发笔记

    参考这个就好 https www yuque com gaohanghang sgrbwh wng754 这个也不错 https blog csdn net weixin 50280576 article details 113033975
  • 开放加速规范AI服务器设计指南

    近日 在2023年开放计算社区中国峰会 OCP China Day 2023 上 开放加速规范AI服务器设计指南 以下简称 指南 发布 指南 面向生成式AI应用场景 进一步发展和完善了开放加速规范AI服务器的设计理论和设计方法 将助力社区成
  • Linux内存管理:ARM Memory Layout以及mmu配置

    http blog csdn net hongzg1982 article details 47341881 在内核进行page初始化以及mmu配置之前 首先需要知道整个memory map 1 ARM Memory Layout PAGE
  • Adobe Photoshop 2022版 功能介绍及使用技巧

    目录 版本介绍 使用技巧 截图展示 分享 版本介绍 Adobe Photoshop 2022是Adobe公司的一款专业的图像处理软件 它提供了强大的图像处理功能 从色彩调整 图层处理到高级合成等功能 新版本带来的一些更新包括 1 人工智能辅
  • Angular的自动化测试

    当Angular项目的规模到达一定的程度 就需要进行测试工作了 本文着重介绍关于ng的测试部分 主要包括以下三个方面 框架的选择 Karma Jasmine 测试的分类和选择 单元测试 端到端测试 在ng中各个模块如何编写测试用例 下面各部
  • Unity的C#编程教程_36_while循环语句

    do while 循环 首先执行用于循环的程序块 再进行条件判断 判断为真则再次运行程序块 直到判定为假 跳出循环 比如数数程序 using System Collections using System Collections Gener
  • Shell文本处理三剑客之awk

    本章大纲 8 3 awk awk是一个处理文本的编程语言工具 能用简短的程序处理标准输入或文件 数据排序 计算以及生成报表等等 在Linux系统下默认awk是gawk 它是awk的GNU版本 可以通过命令查看应用的版本 ls l bin a
  • 开放封闭原则(Open Closed Principle)

    在面向对象的设计中有很多流行的思想 比如说 所有的成员变量都应该设置为私有 Private 要避免使用全局变量 Global Variables 使用运行时类型识别 RTTI Run Time Type Identification 例如
  • 阿里测试

    今天我们看到的阿里巴巴提供的任何一项服务后边都有着无数子系统和组件的支撑 子系统之间也互相依赖关联 其中任意一个环节出现问题都可能对上游链路产生影响 小明做为新人接收到的第一个任务就是去梳理所有的依赖关系 小明和每个系统的负责人确认了依赖关
  • pycharm tips、快捷键及一些常用设置

    转自 http blog csdn net pipisorry article details 39909057 pycharm Learning tips pythoncharm help tip of the day A special
  • 如何快速入门一个陌生领域?

    嗨 大家好 我是痴海 过去的一个月我从零制作了人生第一个长视频 并且在前天发布了 这个视频制作的过程非常不易 但最终呈现的效果还是不错的 视频有不错的质感 并且整体的节奏也不错 大家可以通过下面的链接进行查看 10 分钟看懂计算机是如何运行
  • 东北大学c++实验最后一次

    问题描述 建立两个磁盘文件f1 txt和f2 txt 编写程序实现以下工作 1 从文件in txt输入20个整数 分别存放在两个磁盘文件f1 txt和f2 txt中 每个文件中放10个整数 2 从f1 txt读入10个数 然后存放到f2 t
  • 将写好的java代码打包成jar包并且运行

    一 前言 今天那记录一下jar包的打包以及运行的过程 还是老样子大佬勿喷有问题求告知 谢谢啦 二 直奔主题 1 首先通过idea写一段简单的Java代码如下图所示 2 写好后我们找到如下图的图标 点击进去 这个图标主要是进行项目结构设计 3
  • android 给ListView的divider设置左右padding

    android 给ListView的divider设置左右padding 解决方案 1 利用inset xml标签 在res drawable文件夹下新建listview divider xml文件
  • vue2.x+ts项目,在props type导入自定义接口类型报‘xxx‘ only refers to a type, but is being used as a value here处理办法

    一 报错 xxx only refers to a type but is being used as a value here 在Props中使用自定义类型约束时 报上面的错误 然后 我在网上查找教程 找到一个说在ts中导出class 接