2 ms·
It was would be nice for this to be automatic but filter does work like this it you pass a type guard as the predicate: ``` arr.filter((a: A): a is A & { kind:
by silasdavis 4y ago
It was would be nice for this to be automatic but filter does work like this it you pass a type guard as the predicate:
```
arr.filter((a: A): a is A & { kind: 'bar'} => a.kind === 'bar')
```
If you define:
```
function isKind<K extends A['kind']>(kind: K): (a: A) => a is A & { kind: K } {
return (a): a is A & { kind: K } => a.kind === kind;
}
```
Then you can write:
```
arr.filter(isKind('bar'))
```
and get a properly narrowed return type array
- quonn 4y agoNice, thank you