vue-devui
vue-devui copied to clipboard
feat(devui-cli): 编译生成global.d.ts
#316
PR preview has been successfully built and deployed to https://vue-devui-pr-1346.surge.sh.
@GaoNeng-wWw 想了解下以下问题:
- 增加类型文件之后是否有测试下
import 文件时的类型提示和编写组件 props 时的类型提示这两种使用场景呢? - 构建之后的产物和之前的主要有什么区别呢?
- 之前组件的产物在 packages/devui-vue/build 目录中,增加 ts 类型文件之后,类型文件存放在哪儿了呢?
- 是否需要相应地修改 package.json 中的 types 属性配置下类型的入口文件呢?
- 如果是按需引入组件,类型提示是否生效呢?
@GaoNeng-wWw 想了解下以下问题:
- 增加类型文件之后是否有测试下
import 文件时的类型提示和编写组件 props 时的类型提示这两种使用场景呢?- 构建之后的产物和之前的主要有什么区别呢?
- 之前组件的产物在 packages/devui-vue/build 目录中,增加 ts 类型文件之后,类型文件存放在哪儿了呢?
- 是否需要相应地修改 package.json 中的 types 属性配置下类型的入口文件呢?
- 如果是按需引入组件,类型提示是否生效呢?
增加类型文件之后是否有测试下 import 文件时的类型提示和编写组件 props 时的类型提示这两种使用场景呢?
编写组件 props 时的类型提示是支持的。但是需要在tsconfig.json中的types选项下显式指定global.d.ts,例如vue-devui/global或./node_modules/vue-devui/global
import 文件时的类型提示没有看明白,可以在解释一下吗?如果意思为导入组件时是否会有提示,答案是不存在,因为单个组件没有生成声明文件,导入时会报错。例如
<template>
<Button>Click</Button>
</template>
<script setup lang=ts>
import Button from 'vue-devui/button';
</script>
将会出现如下错误index.umd.js”隐式拥有 "any" 类型。
构建之后的产物和之前的主要有什么区别呢?
有,主要是多了global.d.ts文件
之前组件的产物在 packages/devui-vue/build 目录中,增加 ts 类型文件之后,类型文件存放在哪儿了呢?
global.d.ts与构建产物packages.json同级, 组件产物在typing目录下
是否需要相应地修改 package.json 中的 types 属性配置下类型的入口文件呢?
不需要,global.d.ts主要是为了让volar提供代码提示
如果是按需引入组件,类型提示是否生效呢?
生效,因为volar代码提示似乎与导入方式无关,即便不在app.ts中导入vue-devui。
但部分组件存在props错误,我推测可能是组件在写props时或vite-plugin-dts的问题。这个还有待修正
PR preview has been successfully built and deployed to https://vue-devui-pr-1346.surge.sh.
PR preview has been successfully built and deployed to https://vue-devui-pr-1346.surge.sh.
Deploy PR preview failed.