首页 > 解决方案 > 告诉我如何安全地使用类型为“any”类型的请求正文

问题描述

Next.js API Routes中,请求主体的类型是“any”。

所以,下面的代码不能得到编译错误。

interface Human  {
  name: string
  age: number
  etc...
}

const requestBody: any = {name: "alien"}

/* i want to get compile error here.  */
const human: Human = requestBody

console.log(human) /* {name: "alien"} */

您如何安全地使用请求正文类型?

我的想法是


const valid = ['name', 'age', ...etc].map(key => key in requestBody).reduce((acc, cur) => acc && cur)
if (!valid) return {status: 400}

但我认为这不好。

我想定义这样的功能。


const parse = <T>(item: any): T | undefined => {...}

const human: Human | undefined = parse<Human>(requestBody)


请教我定义这个函数“解析”的想法。

标签: node.jstypescriptnext.jstype-safety

解决方案


推荐阅读