filter<T extends S>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]