小编tha*_*uy_的帖子

Express - 所有“用户”声明必须具有相同的修饰符

我正在我的应用程序中使用expresspassport,在这两个包中,界面下都有一个user属性Request。目前,在请求对象中express具有一个user属性,但没有附加其他属性,例如req.user。我正在尝试对express进行声明合并(不太确定这是否是正确的术语),以便告诉打字稿附加了Express.Request.user一个id属性,如下所示:

declare namespace Express {
  export interface Request {
    user: {
      id: string
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

同时也passport有一个user属性,但值为Express.User。当我执行上面的声明合并时,我收到一条错误,提示“All declarations of 'user' must have identical modifiers.这是 的声明文件” passport

interface User {}

        interface Request {
            authInfo?: AuthInfo;
            user?: User;

            // These declarations are merged into express's Request type
            login(user: User, done: (err: any) => void): void; …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express typescript

8
推荐指数
1
解决办法
2万
查看次数

Typescript 看不到 try/catch 的返回值

我有一个执行一些数据库操作的函数。该实现被包装在一个try/catch块中。例如

async function update({id, ...changes}): Promise<IUserResult> {
 try {
  //code implementation here
  return updatedUser
 } catch(error) {
    console.error
 }
}
Run Code Online (Sandbox Code Playgroud)

打字稿编译器总是抛出一个错误,我返回未定义。我知道是这样,因为我没有从函数块本身显式返回任何值,而是从try/catch块中显式返回任何值。我该怎么办?我刚刚学习打字稿,我想知道如何获取返回值以匹配函数返回类型,在本例中为IUserResult.

非常感谢。

javascript node.js typescript

4
推荐指数
1
解决办法
6088
查看次数

如何从对象数组中删除虚假值

我有一个像这样的对象数组,

const arr = [
 {                                       
  'first name': 'john',               
  'last name': 'doe',            
  age: '22',                            
  'matriculation number': '12349',      
  dob: '12/08/1997'                     
},                                      
{                                       
  'first name': 'Jane',               
  'last name': 'Doe',            
  age: '21',                            
  'matriculation number': '12345',      
  dob: '31/08/1999'                     
},                                      
{                                       
  'first name': '',                     
  'last name': undefined,               
  age: undefined,                       
  'matriculation number': undefined,    
  dob: undefined                        
}                                       
]
Run Code Online (Sandbox Code Playgroud)

我想从数组中删除最后一个对象,因为它具有虚假值,我试图通过编写一个像这样的简单函数来实现这一点

function removeFalsy(obj) {
  for (let i in obj) {
    if (!obj[i]) {
      delete obj[i]
    }
  }
  return obj
}
Run Code Online (Sandbox Code Playgroud)

那没有解决问题,我也尝试使用

arr.map((a) => Object.keys(a).filter((b) => Boolean(b)))
Run Code Online (Sandbox Code Playgroud)

但这只是返回了对象中的键,请问我该如何实现?

谢谢

javascript node.js express

0
推荐指数
1
解决办法
138
查看次数

标签 统计

javascript ×3

node.js ×3

express ×2

typescript ×2