typescript - 如何创建一个对象并将其分配给严格类型的变量?
问题描述
form: Insured: {
firstName: response.primaryInsured.firstName,
lastName: response.primaryInsured.lastName,
dateofbirth: response.primaryInsured.dateOfBirth,
}
形式是对象的一部分,它需要一种被保险人。这里的语法错了吗?如何将这个新对象分配给表单?
这是我正在尝试制作的 C# 等价物
form = new Insured {
FirstName = response.FirstName,
LastName = response.LastName
};
解决方案
您在声明变量时设置类型,您没有显示。例如:
let form: Insured;
然后在将对象分配给它时,如果Insured
只是一个类型(并且您现在已经确认它是),则在分配中根本不包含类型:
form = {
firstName: response.primaryInsured.firstName,
lastName: response.primaryInsured.lastName,
dateofbirth: response.primaryInsured.dateOfBirth,
};
你可以结合这些:
let form: Insured = {
firstName: response.primaryInsured.firstName,
lastName: response.primaryInsured.lastName,
dateofbirth: response.primaryInsured.dateOfBirth,
};
如果Insured
是一个类构造函数,你会这样做:
form = new Insured(/*...arguments here...*/);
...哪里/*...arguments here...*/
取决于构造函数的编写方式。如果它被写入按照您显示的顺序接受参数,那么:
form = new Insured(
response.primaryInsured.firstName,
response.primaryInsured.lastName,
response.primaryInsured.dateOfBirth,
);
同样,您可以组合这些,在这种情况下您不需要指定类型,TypeScript 会推断它:
let form = new Insured(/*...arguments here...*/);
// or to be explicit
let form: Insured = new Insured(/*...arguments here...*/);
(您现在已经确认它是一个类型,而不是一个类)
推荐阅读
- c# - 如何在 Unity 2D 中禁用对角线移动?
- android - Glide 和 ImageView 无缝
- python - 为什么线程(使用 python)可以在 Windows 上工作,但不能在 Mac 上工作?
- pytorch - Pytorch 构建的这个 NN 中的 * 符号是什么意思?
- javascript - TinyMCE 5 过滤列表框项目
- sql-server - Datagridview 只显示行但不显示数据
- azure-storage - 当接收器不可变时,复制数据活动失败
- python - 中间是棕色的二维(加一)维色彩空间?最好在 Python 中使用
- sql - 什么是在具有不同值 (SQL) 的 Oracle/Generate 插入语句中将测试数据插入表中的快速方法?
- javascript - 用 JavaScript 在画布上绘制自定义光标