TypeScript-按泛型类型筛选
我有一个对象,其中有些值是数组,有些值不是数组。我想过滤掉数组,我看到这是以如下类似的方式完成的,但我想对所有数组进行过滤,在它不是类型的情况下,而不是在它是类型的情况下,而不仅仅是传递特定的类型。能做到吗TypeScript-按泛型类型筛选,typescript,Typescript,我有一个对象,其中有些值是数组,有些值不是数组。我想过滤掉数组,我看到这是以如下类似的方式完成的,但我想对所有数组进行过滤,在它不是类型的情况下,而不是在它是类型的情况下,而不仅仅是传递特定的类型。能做到吗 Object.values(inputsOptions).filter((obj: any): obj is not Array => { return obj instanceof Array; }).forEach(obj =>{ //
Object.values(inputsOptions).filter((obj: any): obj is not Array => {
return obj instanceof Array;
}).forEach(obj =>{
//Every object has style property but arrays do not
obj.style = {marginLeft: "1em"};
});
刚刚注意到我使用了obj is数组,而我的意思正好相反,但现在我已经更改了它。尽管如此,问题仍然存在。TypeScript中没有
不是断言,而且如果有,并且obj
是任何但不是数组,这并不意味着它是具有样式属性的对象
如果您知道obj只能是一个数组或具有可变样式
属性的对象,那么您可以断言您所拥有的:
(您还应该使用Array.isArray
而不是instanceof Array
,请参阅。)
TypeScript中没有is not
断言,而且如果有,并且obj
是any
,但不是数组
,这并不意味着它是具有样式属性的对象
如果您知道obj只能是一个数组或具有可变样式
属性的对象,那么您可以断言您所拥有的:
(您还应该使用Array.isArray
而不是instanceof Array
,请参阅。)
请考虑修改上面的代码以构成一个适合于独立的IDE,就像其他人可以自己演示这个问题一样。这将增加你得到的任何答案实际上解决你所看到的问题的机会。请考虑修改上面的代码以构成适合于单独的IDE,就像其他人可以自己演示这个问题一样。这将增加你得到的任何答案都能解决你所看到的问题的机会。谢谢!这正是我所需要的。谢谢!这正是我所需要的。
Object.values({})
.filter((value: unknown): value is { style: unknown } => {
return !Array.isArray(value);
})
.forEach((object) => {
object.style = { marginLeft: "1em" };
});