如何处理仅将要填写的有关必填字段的TS错误?

法比斯

相当标准的用例是创建一个空对象,并用必要的数据填充它。在填充过程的最后,该对象将包含其所有必需的属性,但是在创建对象时,该对象将没有任何属性,因此TypeScript不允许我使用正确的类型键入此新对象。

例:

interface ISomeType {
  x: string;
  y: string;
}

function buildObj(): ISomeType {
  const obj: ISomeType = {}; // TS Error: {} doesn't include x and y
  obj.x = foo();
  obj.y = bar(); // At the end of the filling process, the object is correct

  return obj;
}

我该如何处理?如何让TypeScript理解这个新对象应该是指定的类型,它还没有必需的属性,并且最后将具有它们?

如果我obj用类型标记Partial<ISomeType>则无法标记ISomeType我打算使用的函数返回类型

里塔杰

我将首先构造零件,然后返回对象文字:

function buildObj(): ISomeType {
    const x = foo(); // const x: ISomeType['x'] = foo();
    const y = bar();
    return {
        x,
        y
    };
}

在返回对象之前无需创建对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何处理网页/表单中的必填字段(当我们在填写表单时跳过任何必填字段时。)

如何处理不完整的JSON /记录类型(IE缺少必填字段,我将在后面填写)?

仅当填写了表单的所有必填字段时,如何更改提交表单按钮的值(JS)

WooCommerce Checkout必填字段与计费城市字段有关

填写所有必填字段后如何更改按钮值

GNU分手:如何处理有关正确分配分区的错误

如何处理WWDC 2014中有关Swift代码的一行错误

征求有关如何处理申请的建议

如何处理xarray中与时间有关的坐标?

单击按钮时填写必填字段

请填写必填字段消息框

填写后 Woocommerce 结帐表出现错误“填写必填字段”

表单错误-必填字段

如何仅返回NestJs中的必填字段?

错误:请填写必填字段(名称,电子邮件)。在Wordpress评论中

检查是否在特定的div中填写了所有必填字段

保存带有外部连接表的表单要求填写外部表的必填字段

填写完所有必填字段后使用 Bootstrap Modal

React - 禁用 Ant Design 表单中的按钮,直到填写所有必填字段

PostSharp C#-如何实现所有必填字段

处理格式清晰的必填字段-Angular

在表单中启用按钮之前填写必填字段

是否可以在物料台上填写必填字段

未填写必填字段时仍在提交表单

需要有关此代码如何处理Arraylist值的说明

KStreams-如何处理有关一个主题的消息延迟

cv2.fitEllipse如何处理与旋转有关的宽度/高度?

如何处理有关使用泛型的接口实现的这种情况?

terraform如何处理有关分区的AWS Elastic Block Store(EBS)的安装?