Javascript 如何使用Promise类型的对象<;字符串| null>;一串

Javascript 如何使用Promise类型的对象<;字符串| null>;一串,javascript,typescript,react-fullstack,micro-orm,Javascript,Typescript,React Fullstack,Micro Orm,大家好,我对typescript中的类型有问题。 我正在使用micro orm从数据库中获取数据我正在使用此代码 const user = (await orm).em.findOne(User, { username: options.username }); 它在回报我 user: Promise<string | null> 在下面的查询中 const valid = await argon2.verify(user.password ,options.password);

大家好,我对typescript中的类型有问题。 我正在使用micro orm从数据库中获取数据我正在使用此代码

const user = (await orm).em.findOne(User, { username: options.username });
它在回报我

user: Promise<string | null>
在下面的查询中

const valid = await argon2.verify(user.password ,options.password);
但这给了我错误的感觉

Property 'password' does not exist on type 'Promise<User | null>'
类型“Promise”上不存在属性“password”

我不知道如何解决这个问题,看起来您已经在使用异步函数了。问题是,您没有等待用户承诺完成

试试这个:

// Check that this is really giving you an Entity Manager
const em = (await orm).em;

const users = await em.findOne(User, { username: options.username }); 
if (!users || users.length === 0) throw new Error('No user!');
const user = users[0];
const valid = await argon2.verify(user.password ,options.password);

试过了,但它给出了相同的错误让我澄清一下-我会编辑代码一点它工作得很好谢谢,兄弟你做得很好保持下去。你的函数是否返回
承诺
承诺
?顺便说一句,它们都没有属性
密码
// Check that this is really giving you an Entity Manager
const em = (await orm).em;

const users = await em.findOne(User, { username: options.username }); 
if (!users || users.length === 0) throw new Error('No user!');
const user = users[0];
const valid = await argon2.verify(user.password ,options.password);