我发现很难在 typescript 中声明数组并访问它。
下面是适合我的代码
class Book {
public BookId: number;
public Title: string;
public Author: string;
public Price: number;
public Description: string;
}
class dataservice {
getproducts() {
var bk = new Book();
bk.Author = "vamsee";
bk.BookId = 1;
var bks: Book[] = [bk,bk];
return bks.length;
}
}
var ds = new dataservice();
var button = document.createElement('button');
button.onclick = function () {
alert(ds.getproducts().toString());
}
document.body.appendChild(button);
当我如下更改我的代码时,尝试将值分配给数组项时失败。
var bks: Book[] = new Book[2];
bks[0].Author = "vamsee";
bks[0].BookId = 1;
return bks.length;
要在循环中添加对象,我必须采用第二种方式。
最佳答案
这是一段非常 C# 类型的代码:
var bks: Book[] = new Book[2];
在 Javascript/Typescript 中,你不会像那样预先分配内存,这意味着完全不同的东西。这就是您做您想做的事情的方式:
var bks: Book[] = [];
bks.push(new Book());
bks[0].Author = "vamsee";
bks[0].BookId = 1;
return bks.length;
现在解释一下 new Book[2];
的含义。这实际上意味着在 Book[2] 的值上调用 new 运算符。例如:
Book[2] = function (){alert("hey");}
var foo = new Book[2]
你应该看到嘿。 Try it
关于 typescript 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16233266/