从@types/jsonwebtoken向JwtPayload类型添加其他属性的方法是通过声明合并(declaration merging)来扩展接口。
声明合并是指在 TypeScript 中,可以通过多次声明同一个接口来合并其属性。对于@types/jsonwebtoken中的JwtPayload类型,我们可以创建一个新的声明来添加其他属性。
以下是一个示例:
import { JwtPayload } from '@types/jsonwebtoken';
// 创建一个新的声明来扩展JwtPayload接口
declare module '@types/jsonwebtoken' {
interface JwtPayload {
// 添加其他属性
userId: string;
role: string;
}
}
// 现在JwtPayload类型已经包含了userId和role属性
const payload: JwtPayload = {
userId: '123',
role: 'admin',
// ...
};
在上面的示例中,我们通过创建一个新的声明来扩展JwtPayload接口,并添加了userId和role属性。现在,我们可以在使用JwtPayload类型的地方使用这两个属性。
需要注意的是,这种方法只适用于通过@types/jsonwebtoken导入的类型声明。如果直接在代码中定义了JwtPayload类型,可以直接在定义时添加其他属性。
关于声明合并的更多信息,可以参考 TypeScript 官方文档:https://www.typescriptlang.org/docs/handbook/declaration-merging.html
领取专属 10元无门槛券
手把手带您无忧上云