Microsoft/TypeScript
Auf GitHub ansehenError elaboration says nothing due to circularity
Open
#54.921 geöffnet am 7. Juli 2023
Experience EnhancementHelp WantedSuggestion
Repository-Metriken
- Stars
- (48.455 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (9 gemergte PRs in 30 T)
Beschreibung
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.