mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Accept new baselines
This commit is contained in:
@@ -187,4 +187,14 @@ tests/cases/conformance/types/keyof/keyofAndIndexedAccess2.ts(108,5): error TS23
|
||||
!!! error TS2322: Type '123' is not assignable to type '123 & "some string"'.
|
||||
!!! error TS2322: Type '123' is not assignable to type '"some string"'.
|
||||
}
|
||||
|
||||
// Repros from #30938
|
||||
|
||||
function fn<T extends {elements: Array<string>} | {elements: Array<number>}>(param: T, cb: (element: T['elements'][number]) => void) {
|
||||
cb(param.elements[0]);
|
||||
}
|
||||
|
||||
function fn2<T extends Array<string>>(param: T, cb: (element: T[number]) => void) {
|
||||
cb(param[0]);
|
||||
}
|
||||
|
||||
@@ -108,6 +108,16 @@ interface Type {
|
||||
function get123<K extends keyof Type>(): Type[K] {
|
||||
return 123; // Error
|
||||
}
|
||||
|
||||
// Repros from #30938
|
||||
|
||||
function fn<T extends {elements: Array<string>} | {elements: Array<number>}>(param: T, cb: (element: T['elements'][number]) => void) {
|
||||
cb(param.elements[0]);
|
||||
}
|
||||
|
||||
function fn2<T extends Array<string>>(param: T, cb: (element: T[number]) => void) {
|
||||
cb(param[0]);
|
||||
}
|
||||
|
||||
|
||||
//// [keyofAndIndexedAccess2.js]
|
||||
@@ -183,3 +193,10 @@ export function getEntity(id, state) {
|
||||
function get123() {
|
||||
return 123; // Error
|
||||
}
|
||||
// Repros from #30938
|
||||
function fn(param, cb) {
|
||||
cb(param.elements[0]);
|
||||
}
|
||||
function fn2(param, cb) {
|
||||
cb(param[0]);
|
||||
}
|
||||
|
||||
@@ -388,3 +388,40 @@ function get123<K extends keyof Type>(): Type[K] {
|
||||
return 123; // Error
|
||||
}
|
||||
|
||||
// Repros from #30938
|
||||
|
||||
function fn<T extends {elements: Array<string>} | {elements: Array<number>}>(param: T, cb: (element: T['elements'][number]) => void) {
|
||||
>fn : Symbol(fn, Decl(keyofAndIndexedAccess2.ts, 108, 1))
|
||||
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 112, 12))
|
||||
>elements : Symbol(elements, Decl(keyofAndIndexedAccess2.ts, 112, 23))
|
||||
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more)
|
||||
>elements : Symbol(elements, Decl(keyofAndIndexedAccess2.ts, 112, 51))
|
||||
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more)
|
||||
>param : Symbol(param, Decl(keyofAndIndexedAccess2.ts, 112, 77))
|
||||
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 112, 12))
|
||||
>cb : Symbol(cb, Decl(keyofAndIndexedAccess2.ts, 112, 86))
|
||||
>element : Symbol(element, Decl(keyofAndIndexedAccess2.ts, 112, 92))
|
||||
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 112, 12))
|
||||
|
||||
cb(param.elements[0]);
|
||||
>cb : Symbol(cb, Decl(keyofAndIndexedAccess2.ts, 112, 86))
|
||||
>param.elements : Symbol(elements, Decl(keyofAndIndexedAccess2.ts, 112, 23), Decl(keyofAndIndexedAccess2.ts, 112, 51))
|
||||
>param : Symbol(param, Decl(keyofAndIndexedAccess2.ts, 112, 77))
|
||||
>elements : Symbol(elements, Decl(keyofAndIndexedAccess2.ts, 112, 23), Decl(keyofAndIndexedAccess2.ts, 112, 51))
|
||||
}
|
||||
|
||||
function fn2<T extends Array<string>>(param: T, cb: (element: T[number]) => void) {
|
||||
>fn2 : Symbol(fn2, Decl(keyofAndIndexedAccess2.ts, 114, 1))
|
||||
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 116, 13))
|
||||
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more)
|
||||
>param : Symbol(param, Decl(keyofAndIndexedAccess2.ts, 116, 38))
|
||||
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 116, 13))
|
||||
>cb : Symbol(cb, Decl(keyofAndIndexedAccess2.ts, 116, 47))
|
||||
>element : Symbol(element, Decl(keyofAndIndexedAccess2.ts, 116, 53))
|
||||
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 116, 13))
|
||||
|
||||
cb(param[0]);
|
||||
>cb : Symbol(cb, Decl(keyofAndIndexedAccess2.ts, 116, 47))
|
||||
>param : Symbol(param, Decl(keyofAndIndexedAccess2.ts, 116, 38))
|
||||
}
|
||||
|
||||
|
||||
@@ -423,3 +423,37 @@ function get123<K extends keyof Type>(): Type[K] {
|
||||
>123 : 123
|
||||
}
|
||||
|
||||
// Repros from #30938
|
||||
|
||||
function fn<T extends {elements: Array<string>} | {elements: Array<number>}>(param: T, cb: (element: T['elements'][number]) => void) {
|
||||
>fn : <T extends { elements: string[]; } | { elements: number[]; }>(param: T, cb: (element: T["elements"][number]) => void) => void
|
||||
>elements : string[]
|
||||
>elements : number[]
|
||||
>param : T
|
||||
>cb : (element: T["elements"][number]) => void
|
||||
>element : T["elements"][number]
|
||||
|
||||
cb(param.elements[0]);
|
||||
>cb(param.elements[0]) : void
|
||||
>cb : (element: T["elements"][number]) => void
|
||||
>param.elements[0] : string | number
|
||||
>param.elements : string[] | number[]
|
||||
>param : T
|
||||
>elements : string[] | number[]
|
||||
>0 : 0
|
||||
}
|
||||
|
||||
function fn2<T extends Array<string>>(param: T, cb: (element: T[number]) => void) {
|
||||
>fn2 : <T extends string[]>(param: T, cb: (element: T[number]) => void) => void
|
||||
>param : T
|
||||
>cb : (element: T[number]) => void
|
||||
>element : T[number]
|
||||
|
||||
cb(param[0]);
|
||||
>cb(param[0]) : void
|
||||
>cb : (element: T[number]) => void
|
||||
>param[0] : string
|
||||
>param : T
|
||||
>0 : 0
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user