enter image description here

大家好!

我正在try 使用Sveltekit创建我的第一个API路由,并且我一直在第9行遇到问题,即"quest.Body可能为空",并且它不允许我从请求中提取id.

如果你能提供任何帮助,让我明白我做错了什么,我将不胜感激!

推荐答案

TypeScrip的类型判断意味着它知道不能保证request对象上的body字段会有值,这就是它显示此消息的原因.您需要做的是添加一个卫士--一小段代码,用于判断request.body是否具有值,如果没有,则执行某种错误处理或替代处理.

查看您的代码,如果没有id,您可能不想做太多事情,所以警卫可能只会抛出一个错误,最好是使用像"Invalid request: Need to supply 'id' field in request body"这样的有用消息.

下面的代码片段给出了一个保护条款的示例.您可能还需要验证.get("id")是否未定义.

const data = request.body;
if (data === undefined) {
  throw new Error("Invalid request: Need to supply 'id' field in request body");
}
const id = data.get("id")

Typescript相关问答推荐

如何判断对象是否有重叠的叶子并产生有用的错误消息

从TypeScrip中的其他类型检索泛型类型

有没有可能为这样的函数写一个类型?

如何将父属性类型判断传播到子属性

如何将TS泛型用于react-hook-form接口?

基元类型按引用传递的解决方法

是否将Angular *ngFor和*ngIf迁移到新的v17语法?

TaskListProps[]类型不可分配给TaskListProps类型

编剧- Select 动态下拉选项

如何从抽象类的静态方法创建子类的实例?

如何键入';v型';

为什么我的 Typescript 函数中缺少 void 隐式返回类型?

为什么我无法在 TypeScript 中重新分配函数?

req.files = 未定义(Multer、Express、Typescript)

Next.JS-13(应用程序路由)中发现无效的中间件

输入 'Resolver<{ email: string;密码:字符串; }>' 不可分配给类型 'Resolver'

在 Typescript 中,如何修改使用通用键获得的数组类型的属性?

TypeScript 5 - 从属性decorator 访问类构造函数

将 Day.js 与 Material-UI DatePicker 结合使用时,如何解决 TypeScript 错误类型‘Dayjs’缺少类型‘日期’的属性?

如何重写作为函数参数传递的对象的this类型