Arrays 对象的类型脚本数组
我正在尝试使用对象数组,我想知道我的声明是否正确Arrays 对象的类型脚本数组,arrays,typescript,Arrays,Typescript,我正在尝试使用对象数组,我想知道我的声明是否正确 public async list(){ myObj1 = { "name": "John", "age": "45", "car": 20, "test": 30, "example": 20 }; myObj2 = { "name": "John", "age": "30", "car": 10, "example": 10 }; let tab: Array<{"project": string, "new": string, "o
public async list(){
myObj1 = {
"name": "John",
"age": "45",
"car": 20,
"test": 30,
"example": 20
};
myObj2 = {
"name": "John",
"age": "30",
"car": 10,
"example": 10
};
let tab: Array<{"project": string, "new": string, "old": string}> = []
// find keys
keyObj1 = Object.keys(myObj1);
keyObj2 = Object.keys(myObj2);
// find max length to iterate
if (keyObj1.length > keyObj2.length) {
var biggestKey = keyObj1;
} else {
var biggestKey = keyObj2;
}
// now compare their keys and values
for (var i = 0; i < biggestKey.length; i++) {
var key = biggestKey[i];
if (myObj1[key] != myObj2[key]) {
tab.push({
"project": key,
"new": myObj1[key],
"old": myObj2[key]
})
}
//console.log(tab)
}
公共异步列表(){
myObj1={
“姓名”:“约翰”,
“年龄”:“45”,
“汽车”:20,
“测试”:30,
“例子”:20
};
myObj2={
“姓名”:“约翰”,
“年龄”:“30岁”,
“汽车”:10,
“例子”:10
};
let选项卡:数组=[]
//找钥匙
keyObj1=Object.keys(myObj1);
keyObj2=Object.keys(myObj2);
//查找要迭代的最大长度
if(keyObj1.length>keyObj2.length){
var biggestKey=keyObj1;
}否则{
var biggestKey=keyObj2;
}
//现在比较它们的键和值
对于(var i=0;i
- let选项卡:数组=[]
阵列可以,但是:
您可能不希望有一个名为new
的属性(尽管这可能是一个过时的问题)。您可以拥有一个具有该名称的属性,只是在ES5之前,您不能使用关键字或保留字作为文字属性名(x.new
在ES5之前无效,在ES5和更高版本中有效)。如果您将您的TypeScript编译为ES3,以便在非常旧的浏览器上使用,则必须在您编写的任何地方使用x[“new”]
,以便与ES5之前的属性标识符语法兼容
不需要引号,只要Array
就可以了
我建议单独声明对象类型(例如,MyType
),然后使用MyType[]
例如:
interface MyType {
project: string,
new: string, // Or possibly change this
old: string
}
然后:
let tab: MyType[] = [];
数组
可以,但是:
您可能不希望有一个名为new
的属性(尽管这可能是一个过时的问题)。您可以拥有一个具有该名称的属性,只是在ES5之前,您不能使用关键字或保留字作为文字属性名(x.new
在ES5之前无效,在ES5和更高版本中有效)。如果您将您的TypeScript编译为ES3,以便在非常旧的浏览器上使用,则必须在您编写的任何地方使用x[“new”]
,以便与ES5之前的属性标识符语法兼容
不需要引号,只要Array
就可以了
我建议单独声明对象类型(例如,MyType
),然后使用MyType[]
例如:
interface MyType {
project: string,
new: string, // Or possibly change this
old: string
}
然后:
let tab: MyType[] = [];
您的类型很好,但是,Typescript将对此进行投诉:myObj1[key]!=myObj2[key]
^^,因为您尚未为该类型定义。您的类型很好,但是,Typescript将对此进行投诉:myObj1[key]!=myObj2[key]
^^,因为您尚未为该类型定义。