Javascript 在Typescript中使用对象时如何初始化子对象
还在学习打字脚本,我有这个目标Javascript 在Typescript中使用对象时如何初始化子对象,javascript,typescript,Javascript,Typescript,还在学习打字脚本,我有这个目标 导出类标记{ 职位:{ 拉特:号码, 液化天然气:数量, }; 标签:{ 颜色:字符串, 文本:字符串, }; 标题:字符串; 选项:{ 动画:任何, }; }首先,我建议您在严格模式下使用Typescript 在严格模式下使用typescript时,如果类成员没有任何初始化,则会显示错误: 我还将定义每个对象的结构(也在对象内部) 如果您的标记对象不需要任何内部逻辑,那么我也会将其设置为接口: interface Marker { position:
导出类标记{
职位:{
拉特:号码,
液化天然气:数量,
};
标签:{
颜色:字符串,
文本:字符串,
};
标题:字符串;
选项:{
动画:任何,
};
}
首先,我建议您在严格模式下使用Typescript
在严格模式下使用typescript时,如果类成员没有任何初始化,则会显示错误:
我还将定义每个对象的结构(也在对象内部)
如果您的标记对象不需要任何内部逻辑,那么我也会将其设置为接口:
interface Marker {
position: Position;
label: Label;
title: string;
options: Options;
}
您的初始化可能类似于:
for (const ybEvent of this.Events) {
const position: Position = {
lat: ybEvent.latitude,
lng: ybEvent.longitude,
};
const label: Label = {
color: 'blue',
text: ybEvent.description,
}
const options: Options = {
animation: google.maps.Animation.BOUNCE
}
const marker: Marker = {
position,
label,
options,
}
this.markers.push(marker);
}
或没有中间对象:
for (const ybEvent of this.Events) {
const marker: Marker = {
position: {
lat: ybEvent.latitude,
lng: ybEvent.longitude,
},
label: {
color: 'blue',
text: ybEvent.description,
},
options: {
animation: google.maps.Animation.BOUNCE
}
}
this.markers.push(marker);
}
请记住,Typescript的思想是具有
类型
安全性。如果以这种方式初始化对象,则它没有任何类型信息。首先设置marker.position={}
,然后设置marker.position.lat=some值
如果要深入到第一级,则需要使用object初始化它,或者可以使用object literalmarker.position={lat:some value,…}
这是在ts中创建、初始化和使用对象的最佳方式吗?在我看来,这与ts无关,只是js的工作方式。有一定的方法可以做到这一点,一种是手动初始化object.assign,object literal。选择取决于您的偏好。谢谢。我应该保留这篇文章还是删除它?
for (const ybEvent of this.Events) {
const marker: Marker = {
position: {
lat: ybEvent.latitude,
lng: ybEvent.longitude,
},
label: {
color: 'blue',
text: ybEvent.description,
},
options: {
animation: google.maps.Animation.BOUNCE
}
}
this.markers.push(marker);
}