我想实现一个函数来循环对象的属性并将更新应用于相同类型的另一个对象。
interface Car {
tires: number;
name: string;
}
function updateCar(car: Car, updates: Partial<Car>) {
Object.entries(updates).forEach(([key, value]) => {
car[key] = value;
})
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是有一个错误
No index signature with a parameter of type 'string' was found on type 'Car'
Run Code Online (Sandbox Code Playgroud)
将密钥投射到keyof Car它的工作时,但一旦使用"noImplicitAny": true就会再次出现错误
Type 'string | number' is not assignable to type 'never'
Run Code Online (Sandbox Code Playgroud)
有没有办法以类型安全的方式解决这个问题。将汽车投射到任何位置都可以,但我想避免它。
非常感谢贝内
我的目标是编写一个平面数组的函数.因此,例如[1,[2,3]]应转向[1,2,3].我尝试使用递归方法,如下所示,但它产生一个无限循环.
function steamrollArray(arr) {
var resultArray = [];
function flatArray(array) {
for (i = 0; i < array.length; i++){
if (Array.isArray(array[i])) {
flatArray(array[i]);
} else resultArray.push(array[i]);
}
}
flatArray(arr);
return resultArray;
}
steamrollArray([1, [2,3]]);
Run Code Online (Sandbox Code Playgroud)
我的错是什么?
提前致谢