大佬,怎么写?给个格式参考下,思路的理解,语法的懵逼。
很多方式,比如
const aaarr = new Array(10).fill(0);
或者for 循环,
aaarr.push(0); 10次
private static eventList: {eventName: string; eventNum: string;}[] = []
var obj = { eventName: "", eventNum: "" };
this.eventList[0] = obj;
这招没管用,我试试push
你这个数组是 static 的,用的时候是在 static 方法里用的吗
对,是static的方法里
这句话啥意思?
这句话刚刚说错了 我的。
直接push 就行 ,这里报错的原因是因为你 list[0] 不存在 返回值是 undefine ,
所以你的list[0].aaa = abc 实际是 undefine.abc,报错就成了 不存在abc这个属性
用push初始化数组,解决了。谢谢各位大佬的帮助,感觉外面阳光都明媚了很多呢(没有太阳
不过在试验的过程中发现,虽然我声明的时候格式写的是{eventName; eventNum},但实际上好像这个没啥用,因为我刚试了下,如果我在初始化数组的时候,写aaa: “test”,这个数组就变成{aaa: “test”}这样的格式了,这样是不是没必要把格式声明那么清楚了?或者说,这就是我们需要自己约束自己的地方,只按声明的用别乱来?
相关代码我是这么写的,要是有人遇到和我一样的问题,可以康康参考下
public static fullDefaultEventList: {eventName: string; eventNum: string;}[] = [];
for (var i = 0; i < splittedEventsList.length; i++) {
var obj = { eventName: “”, eventNum: “” };
this.fullDefaultEventList.push(obj);
this.fullDefaultEventList[i].eventName = splittedEventsList[i];
this.fullDefaultEventList[i].eventNum = splittedEventsNumList[i];
}
不写声明就成了js了呀。你不是享受这代码提示的智能吗?不写声明就没这个智能了。你自己考虑就行。。而且,为什么用ts不用js, 不就是为了限制程序员这个人不要乱写代码吗?
是这个道理,大佬所言极是
类型是要声明清楚的 string就"" num 就 0 或者-1 声明类型的时候
最好可以使用interface或者class
interface IDefaultEvent
{
eventName:string,
eventNum:number,
}
class DefaultEvent{
eventName:string;
eventNum:number;
/**
* @param eventName 名称
* @param eventNum 数量
*/
constructor(eventName:string = "", eventNum:number = 0)
{
this.eventName = eventName;
this.eventNum = eventNum;
}
}
let a:DefaultEvent[] = [];
let b:DefaultEvent = new DefaultEvent("test",1);
a.push(b);
可以试试 这样子的代码提示比较舒适
卧槽这个有点厉害了,我要消化消化
什么时候this只能指向class实例,那才是真的,,,,
调试bug的时候,就知道到底用什么痛苦了
你大部分时间应该都用在调试上的
你如果只是想定义一个string类型的数组 可以直接声明一个 listName:string[]=[];
用过as3 再用ts 感觉差不多 
差得多。。。。as3没有this指向问题。。。。as3是最好的语言
没有用过强类型语言的脚本程序员一开始确实会不习惯,js确实随心所欲但是项目一旦到达中重度js简直是灾难很难维护,楼主静下心来慢慢就会体会到ts的类型系统带来的好处了