换了 Vue-Official 的编辑器扩展后就不生效,如果使用之前的 volar 是可以生效的。
import { Component, SwiperProps, SwiperItemProps, SwiperItem } from '@uni-helper/uni-app-types'
declare global {
namespace JSX {
interface IntrinsicElements {
swiper: SwiperProps
// swiperItem: SwiperItemProps
swiperItem: SwiperItem
swiper20: SwiperItemProps
}
}
}
declare module '@vue/runtime-core' {
interface GlobalComponents {
swiper: SwiperProps
swiperItem: SwiperItemProps
swiper20: SwiperItemProps
}
}
declare module 'vue3/jsx-runtime' {
namespace JSX {
interface IntrinsicElements {
swiper: SwiperProps
swiperItem: SwiperItemProps
swiper20: SwiperItemProps
}
}
}
试了一下上面的方式都没用生效,其中 props 结尾的类型是组件的属性类型。SwiperItem 等于 _SwiperItem, type _SwiperItem = _Component<_SwiperItemProps>
https://uni-typed.netlify.app/guide/uni-app-types.html#%E9%85...
在 Vue 开发中,如果你正在使用 JSX 并且想要为自定义组件或内置元素(如你例子中的 swiper
和 swiperItem
)提供类型提示,你需要确保你的类型声明正确,并且与你的项目设置(包括使用的编辑器扩展)兼容。
首先,从你提供的代码片段来看,有几个地方可能存在问题或不一致:
SwiperProps
和 SwiperItemProps
,但通常应该是 Swiper
或 SwiperItem
的拼写错误,比如可能是 Swiper
应该是 Swiper
或 swiper
(取决于你的组件名),SwiperItemProps
应该是 SwiperItemProps
或 swiperItemProps
(同样取决于你的组件和属性名)。.d.ts
文件中,或者在你的组件文件旁边。vue3/jsx-runtime
,但通常 Vue 3 使用的是 @vue/babel-plugin-jsx
或直接在 Vue 3 的 JSX 转换中处理 JSX。确保你的 Babel 配置或 TypeScript 配置支持 JSX。tsconfig.json
包含了正确的 JSX 配置(如果你在使用 TypeScript)。以下是一个简化的类型声明示例,用于 Vue 3 和 JSX:
// 在全局的 .d.ts 文件中
declare module '*.vue' {
import { DefineComponent } from 'vue';
const component: DefineComponent<{}, {}, any>;
export default component;
}
// 对于 JSX 自定义元素
declare global {
namespace JSX {
interface IntrinsicElements {
'swiper': {
// swiper 的 props
props: {
// 属性定义
autoplay?: boolean;
// ... 其他属性
};
};
'swiper-item': {
// swiper-item 的 props
props: {
// 属性定义
// ...
};
};
}
}
}
注意:这里的 'swiper'
和 'swiper-item'
应该是你实际使用的组件标签名。
比如把鼠标悬停在某个函数上,但是 vscode 没有任何智能提示 vue 的插件我都安装了 不知道是不是和这个蓝色波浪号有关系
框架基本固定,开发按结构来就可以了. 许多小功能基本都是一样的逻辑, 增,删,查,改. 数据表基本差不多,少量不一致,不能合表. 一个小功能下来,大多时间都在定义 api,对象,各层参数传递,转换,重复着基本一样的逻辑. 几个小功能下来,写都写烦了. 这个好像又没有好的办法避免,实在是想跳出这种又费力又对耐心的拆磨(虽然不费什么神思考太多,但对精神很是折磨),大家对此有没有经验分享一二. 哈哈,见
时间线8.29下午2点-5点 一面 自我介绍 实习经历 Kafka顺序问题 对Spring的理解 AOP实现原理 注解失效的场景 HashMap 底层 装饰器模式 Redis数据类型 跳表结构 Zset怎么实现按分值进行排序的 Spring Cloud 组件 Feign 过程 Dubbo 比 Feign优势 为什么选择JSON序列化方式 有做数据的压缩嘛 Spring Security用来干嘛的
滴滴一、二面 一面 介绍项目,讲一下项目难点 你的缓存和数据库是怎么保证一致性的 如果在缓存还没过期的时间内,数据库的数据就发生变更了怎么办 超卖问题怎么解决的 分布式锁是怎么做的 看门狗机制是怎么实现的 redis分布式锁底层是基于什么命令实现的 少买是怎么解决的 你的消息队列里面存的是什么内容 如果进队列前返回给用户成功,但是实际上库存已经不足了,这时候进消息队列了,用户实际上是抢不到票的,这
古老的框架有些代码不能提示 都是 $messageModule = kernel::single('class_name');这样调用的 怎么让$messageModule写代码时有提示哪些方法呢
确保最新的pact契约得到验证 使用最新的可用的pact契约访问地址。 不要依赖手动干预(例如,将文件复制到提供者项目中)。因为这个步骤将分解或中断验证过程,导致某些验证任务错误。 不要试图通过手动更新pact契约的方式来“保证”测试通过。 pact:verify是集成验证的金丝雀方式 - 而手动更新就像给金丝雀戴上防毒面具,失去了本来意义。 确保Pact测试作为CI构建的一部分它应该与所有其他测