前言
最近刚开始使用ts,定义的变量总是不知道类型,特别是第三方库中,更是不知道有哪些类型,笨人本办法,遇到一个就记录一下,方便我下次使用查询
组件实例
我们通过组件的ref属性获取组件实例时,定义的实例变量需要指定类型。下面是常见的一些组件实例类型
el-scrollbar
vue
<template>
<el-scrollbar ref="scrollbarRef"></el-scrollbar>
</template>
<script lang="ts" setup>
import type { ElScrollbar } from 'element-plus';
const scrollbarRef = ref<InstanceType<typeof ElScrollbar>>();
scrollbarRef.value!.setScrollTop(value)
</script>
el-form
vue
<template>
<el-form ref="ruleFormRef"></el-form>
</template>
<script lang="ts" setup>
import type { ElForm } from 'element-plus';
// 可以单独定义一个类型
type FormInstance = InstanceType<typeof ElForm>;
const ruleFormRef = ref<FormInstance>();
ruleFormRef.value!.resetFields();
</script>
el-table
vue
<template>
<el-table ref="multipleTable"></el-table>
</template>
<script lang="ts" setup>
import type { ElTable } from "element-plus";
const multipleTable = ref<InstanceType<typeof ElTable>>();
multipleTable.value!.clearSelection();
</script>
el-input
vue
<template>
<el-input ref="multipleTable" v-model="value"></el-table>
</template>
<script lang="ts" setup>
import type { ElInput } from "element-plus";
const multipleTable = ref<InstanceType<typeof ElInput>>();
multipleTable.value!.focus()
</script>
Props 属性类型
当我们要动态设置某些组件的props属性时,有些属性也是有类型的,如果定义不对,也是会有ts类型错误提示的。
组件的 size 属性
ComponentSize
export declare const componentSizes: readonly ["", "default", "small", "large"];
vue
// template
<el-table ref="multipleTable" :size="tableSize"></el-table>
// ts
import type { ComponentSize } from 'element-plus';
const tableSize = ref<ComponentSize>('default');
时间组件的类型
DatePickType
export declare const datePickTypes: readonly ["year", "month", "date", "dates", "week", "datetime", "datetimerange", "daterange", "monthrange"];