/uni-ui-types

uni-ui 组件类型

Primary LanguageTypeScriptMIT LicenseMIT

@uni-helper/uni-ui-types

该仓库已废弃,请查看 @uni-helper/uni-types 获取最新支持。

License

npm

基于 这个 PRVue - Official(即 Volar) 已经支持。

安装之后,请参考 这里 配置你的 VS Code。启用或安装后需要重启 VS Code。

维护直到官方类型推出。

类型和文档的冲突之处,请以文档为准。

类型源代码在 uni-helper/uni-ui-types。欢迎提交 ISSUE 和 PR 改进类型。

使用

配置

  • 安装依赖

    npm i -D @uni-helper/uni-app-types @uni-helper/uni-ui-types
    yarn v2/v3

    请参考 文档 设置 nodeLinkernode_modules

    pnpm

    请参考 文档 设置 shamefully-hoisttrue

  • 配置 tsconfig.json,确保 compilerOptions.types 中含有 @dcloudio/types@uni-helper/uni-app-types@uni-helper/uni-ui-types,且 include 包含了对应的 vue 文件

    2.0.14 <= Vue Language Features (Volar) & vue-tsc <= 2.0.21
    {
      "compilerOptions": {
        "types": [
          "@dcloudio/types",
          "@uni-helper/uni-app-types",
          "@uni-helper/uni-ui-types"
        ]
      },
      "vueCompilerOptions": {
        "plugins": ["@uni-helper/uni-app-types/volar-plugin"]
      },
      "include": ["src/**/*.vue"]
    }
    1.7.12 <= Vue Language Features (Volar) & vue-tsc < 2.0.14
    {
      "compilerOptions": {
        "types": [
          "@dcloudio/types",
          "@uni-helper/uni-app-types",
          "@uni-helper/uni-ui-types"
        ]
      },
      "vueCompilerOptions": {
        "nativeTags": ["block", "component", "template", "slot"]
      },
      "include": ["src/**/*.vue"]
    }
    1.5.1 <= Vue Language Features (Volar) & vue-tsc < 1.7.12
    {
      "compilerOptions": {
        "types": [
          "@dcloudio/types",
          "@uni-helper/uni-app-types",
          "@uni-helper/uni-ui-types"
        ]
      },
      "include": ["src/**/*.vue"]
    }
    1.0.10 <= Vue Language Features (Volar) & vue-tsc < 1.5.1
    {
      "compilerOptions": {
        "types": [
          "@dcloudio/types",
          "@uni-helper/uni-app-types",
          "@uni-helper/uni-ui-types"
        ]
      },
      "vueCompilerOptions": {
        "nativeTags": ["block", "component", "template", "slot"]
      },
      "include": ["src/**/*.vue"]
    }
    0.34.16 <= Vue Language Features (Volar) & vue-tsc < 1.0.10
    {
      "compilerOptions": {
        "types": [
          "@dcloudio/types",
          "@uni-helper/uni-app-types",
          "@uni-helper/uni-ui-types"
        ]
      },
      "vueCompilerOptions": {
        "experimentalRuntimeMode": "runtime-uni-app"
      },
      "include": ["src/**/*.vue"]
    }
  • 重启编辑器 / IDE

标注类型

推荐使用 @uni-helper/uni-ui-types 导出的类型为变量标注类型。

<script setup lang="ts">
import { ref } from 'vue';
import type { UniBadgeType, UniBadgeOnClick } from '@uni-helper/uni-ui-types';

const type = ref<UniBadgeType>('default');
const onClick: UniBadgeOnClick = (event) => {
  ...
};
</script>

<template>
  <uni-badge :type="type" @click="onClick"></uni-badge>
</template>

也可以直接使用命名空间来为变量标注类型。

<script setup lang="ts">
import { ref } from 'vue';

const type = ref<UniHelper.UniBadgeType>('default');
const onClick: UniHelper.UniBadgeOnClick = (event) => {
  // ...
};
</script>

<template>
  <uni-badge :type="type" @click="onClick"></uni-badge>
</template>

请查看 types 了解所有类型。

致谢

最初在 uni-base-components-types 得到了灵感。

基于 这个 PR 完成。