Dev cleaning (#106)
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
|
||||
export interface Base {
|
||||
id: number
|
||||
createdAt: string | null
|
||||
updatedAt: string | null
|
||||
deletedAt?: string | null
|
||||
}
|
||||
|
||||
export interface CodeName {
|
||||
name: string
|
||||
code: string
|
||||
}
|
||||
|
||||
export interface TreeItem {
|
||||
value: string
|
||||
label: string
|
||||
hasChildren: boolean
|
||||
children?: TreeItem[]
|
||||
}
|
||||
|
||||
export function genBase(): Base {
|
||||
return {
|
||||
id: 0,
|
||||
createdAt: '',
|
||||
updatedAt: '',
|
||||
}
|
||||
}
|
||||
|
||||
export type WithBase<T extends Base> = Omit<T, keyof Base> & Required<Base>
|
||||
|
||||
/**
|
||||
* The function `withBase` sets default values for item properties if not provided.
|
||||
* @param item - The `withBase` function takes in an optional parameter `item`, which is a
|
||||
* partial object of type `T`. The function merges the properties of `item` with default values for
|
||||
* `id`, `createdAt`, `updatedAt`, and `deletedAt`. The function then returns an object of type
|
||||
* @returns The `withBase` function returns an object with default values for the properties
|
||||
* `id`, `createdAt`, `updatedAt`, and `deletedAt`, along with any additional properties provided in
|
||||
* the `item` parameter. The returned object has a type `WithBase<T>`, which extends `T` and
|
||||
* includes the default properties.
|
||||
*/
|
||||
export function withBase<T extends Base>(item: Partial<T> = {}): WithBase<T> {
|
||||
return {
|
||||
id: 0,
|
||||
createdAt: null,
|
||||
updatedAt: null,
|
||||
deletedAt: null,
|
||||
...item,
|
||||
} as WithBase<T>
|
||||
}
|
||||
Reference in New Issue
Block a user