Skip to content

TypeScript

Define type for user

Mặc định object user được định nghĩa interface như sau:

ts
interface User {
  [key: string]: any;
}

Nghĩa là user object có thể chứa bất kỳ property nào, điều này đồng nghĩa với việc trong quá trình sử dụng bạn sẽ không nhận được những lợi ích từ TypeScript.

Để fully type cho user object, bạn có thể sử định nghĩa lại type cho user object như sau:

ts
// ts-shim.d.ts
import type { User } from '@trandaison/nuxt-3-auth';

export type CustomUser = {
  id: number;
  name: string;
  email: string;
  avatar: string;
  role: string;
  // ...
};

declare module '@trandaison/nuxt-3-auth' {
  interface User extends CustomUser {}
}

export {};