我正在使用TypeScript项目中的jsonwebtoken库。与该库一起,我导入了@types/jsonwebtoken库以提供类型。在此库中,jsonwebtoken的函数verify
declared as following:
export function verify(
token: string,
secretOrPublicKey: Secret,
options?: VerifyOptions
): object | string;
但是我想指定它确切返回的对象,而不仅仅是object | string
,是由以下接口定义的对象:
export interface DecodedJwtToken {
userId: string;
primaryEmail: string;
}
如何在我的项目中实现它?是否可以在不进行类型转换的情况下完成,即
const decodedToken: DecodedJwtToken = verify(token, JWT_PRIVATE_KEY) as DecodedJwtToken;
谢谢你。
您正在寻找的是module augmentation:
import { Secret, VerifyOptions } from 'jsonwebtoken';
export interface DecodedJwtToken {
userId: string;
primaryEmail: string;
}
declare module 'jsonwebtoken' {
function verify(token: string, secretOrPublicKey: Secret, options?: VerifyOptions): DecodedJwtToken;
}