Open
Description
Bug Report
⏯ Playground Link
Playground link with relevant code
💻 Code
// @target: esnext
export interface ReadonlySparseArray<T> {
slice(start?: number, end?: number): SparseArray<T>;
every<S extends T>(
predicate: (value: T, index: number) => value is S,
): this is ReadonlySparseArray<S>;
flatMap<U>(callback: (value: T, index: number) => U | readonly U[] | ReadonlySparseArray<U>): U[];
}
export interface SparseArray<T> extends ReadonlySparseArray<T> {}
const _a: ReadonlySparseArray<string> = ['a'];
const _b: SparseArray<string> = ['a'];
🙁 Actual behavior
_b
:
Type 'string[]' is not assignable to type 'SparseArray<string>'.
Types of property 'slice' are incompatible.
Type '(start?: number | undefined, end?: number | undefined) => string[]' is not assignable to type '(start?: number | undefined, end?: number | undefined) => SparseArray<string>'.ts(2322)
In trying to tell you why string[]
is not assignable to SparseArray<string>
, the elaboration references two signatures which are identical except for their return types: string[]
and SparseArray<string>
, which lands you right back where you started.
This particular example occurs in #50351, which is a separately buggy behavior, so this repro may stop reproing if that gets fixed.
Metadata
Metadata
Assignees
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity