【发布时间】:2022-09-27 17:35:37
【问题描述】:
我想让FormData (documentation) 接口与指定的必填字段。所以我想使用 TypeScript 来检查我的 formData 是否包含所有必填字段。
export interface AddRequest {
image: Blob;
username: string;
}
// This is invalid
export interface AddRequestApi extends FormData {
image: FormDataEntryValue;
username: FormDataEntryValue;
}
所以我可以这样做:
export const mapRequest = (request: AddRequest): AddRequestApi => {
const { image, username } = request;
const formData = new FormData();
formData.append(\'image\', image);
formData.append(\'username\', username);
// I want my ts compiler to check if returned formData has required fields
// that should be stated in AddRequestApi type (or interface)
return formData;
};
-
在底部放一个简单的问题
-
Typescript 的类型检查在运行时不起作用,因此您不能使用 typescript 接口来检查是否有人发布了正确的数据。您仍然必须使用
if语句来查看是否存在某些数据以及它是什么类型。 -
多次
.append()调用的方式意味着代码只能在运行时检查,而不是编译时(这意味着TS无法检查它)
标签: typescript