如果自己写这个omit函数,应该怎么给这个函数标注ts类型
来源:6-3 Icon 组件编码第一部分 - 完善功能以及样式添加

自学成菜_
2023-09-04
<template>
<i class="c-icon" :class="{[`c-icon--${type}`]:type}">
<font-awesome-icon v-bind="fontawesomeProps" />
</i>
</template>
<script setup lang="ts">
import type { IconProps } from './types'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
defineOptions({
name: 'CIcon',
inheritAttrs: false
})
const props = defineProps<IconProps>()
const omit = (object, paths) => {
const result = {};
for (const key in object) {
if (!paths.includes(key)) {
result[key] = object[key];
}
}
return result;
}
const fontawesomeProps = omit(props, ['type', 'color']);
老师我请教一下如果自己写这个omit函数,应该怎么给这个函数标注ts类型
写回答
1回答
-
同学你好
简单写了一下,可以试试:
const omit = <T extends object, K extends keyof T>(object: T, paths: K[]): Omit<T, K> => { const result = {} as any; for (const key in object) { if (!paths.includes(key as any)) { result[key] = object[key]; } } return result; };
基本原理就是使用 Omit 手动标准了返回
022024-05-20
相似问题