换句话说,我怎样才能将
// an array of length >= 3
let myArray = returnOfSomeParametricFunction(); // assuming repeating rhs removes dryness
let myObj = { staticKeyName: myArray[1], anotherStaticKeyName: myArray[2] };
变成单行线。也许是这样的。
let myObj = returnOfSomeParametricFunction().reduce(arr=> { staticKeyName: arr[1], anotherStaticKeyName: arr[2] };
在这种情况下,如果我需要在一行中完成,而不是在同一范围内引入一个新的变量,那么我就需要 myObj
如果我不在乎可读性,我会用这样的箭头函数。
let myObj = (a => ({ staticKeyName: a[1], anotherStaticKeyName: a[2] }))(
returnOfSomeParametricFunction());
你可以验证 myObj
具有正确类型的属性。 例如,给定
declare function returnOfSomeParametricFunction(): [Date, number, string];
然后 myObj
会有类型。
/*
let myObj: {
staticKeyName: number;
anotherStaticKeyName: string;
}
*/
好的,希望能帮到你;祝你好运!