Merge pull request #43055 from armanio123/FixDefineForClassFields
Filter transient flags to fix useDefineForClassFields
This commit is contained in:
commit
8a81a6722d
|
@ -0,0 +1,18 @@
|
|||
//// [intersectionType_useDefineForClassFields.ts]
|
||||
type Foo<T> = {
|
||||
[k in keyof T & string]: any
|
||||
}
|
||||
|
||||
function bar<T>(_p: T): { new(): Foo<T> } {
|
||||
return null as any;
|
||||
}
|
||||
|
||||
class Baz extends bar({ x: 1 }) {
|
||||
}
|
||||
|
||||
//// [intersectionType_useDefineForClassFields.js]
|
||||
function bar(_p) {
|
||||
return null;
|
||||
}
|
||||
class Baz extends bar({ x: 1 }) {
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
=== tests/cases/compiler/intersectionType_useDefineForClassFields.ts ===
|
||||
type Foo<T> = {
|
||||
>Foo : Symbol(Foo, Decl(intersectionType_useDefineForClassFields.ts, 0, 0))
|
||||
>T : Symbol(T, Decl(intersectionType_useDefineForClassFields.ts, 0, 9))
|
||||
|
||||
[k in keyof T & string]: any
|
||||
>k : Symbol(k, Decl(intersectionType_useDefineForClassFields.ts, 1, 5))
|
||||
>T : Symbol(T, Decl(intersectionType_useDefineForClassFields.ts, 0, 9))
|
||||
}
|
||||
|
||||
function bar<T>(_p: T): { new(): Foo<T> } {
|
||||
>bar : Symbol(bar, Decl(intersectionType_useDefineForClassFields.ts, 2, 1))
|
||||
>T : Symbol(T, Decl(intersectionType_useDefineForClassFields.ts, 4, 13))
|
||||
>_p : Symbol(_p, Decl(intersectionType_useDefineForClassFields.ts, 4, 16))
|
||||
>T : Symbol(T, Decl(intersectionType_useDefineForClassFields.ts, 4, 13))
|
||||
>Foo : Symbol(Foo, Decl(intersectionType_useDefineForClassFields.ts, 0, 0))
|
||||
>T : Symbol(T, Decl(intersectionType_useDefineForClassFields.ts, 4, 13))
|
||||
|
||||
return null as any;
|
||||
}
|
||||
|
||||
class Baz extends bar({ x: 1 }) {
|
||||
>Baz : Symbol(Baz, Decl(intersectionType_useDefineForClassFields.ts, 6, 1))
|
||||
>bar : Symbol(bar, Decl(intersectionType_useDefineForClassFields.ts, 2, 1))
|
||||
>x : Symbol(x, Decl(intersectionType_useDefineForClassFields.ts, 8, 23))
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
=== tests/cases/compiler/intersectionType_useDefineForClassFields.ts ===
|
||||
type Foo<T> = {
|
||||
>Foo : Foo<T>
|
||||
|
||||
[k in keyof T & string]: any
|
||||
}
|
||||
|
||||
function bar<T>(_p: T): { new(): Foo<T> } {
|
||||
>bar : <T>(_p: T) => { new (): Foo<T>;}
|
||||
>_p : T
|
||||
|
||||
return null as any;
|
||||
>null as any : any
|
||||
>null : null
|
||||
}
|
||||
|
||||
class Baz extends bar({ x: 1 }) {
|
||||
>Baz : Baz
|
||||
>bar({ x: 1 }) : Foo<{ x: number; }>
|
||||
>bar : <T>(_p: T) => new () => Foo<T>
|
||||
>{ x: 1 } : { x: number; }
|
||||
>x : number
|
||||
>1 : 1
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// @target: ESNext
|
||||
// @useDefineForClassFields: true
|
||||
|
||||
type Foo<T> = {
|
||||
[k in keyof T & string]: any
|
||||
}
|
||||
|
||||
function bar<T>(_p: T): { new(): Foo<T> } {
|
||||
return null as any;
|
||||
}
|
||||
|
||||
class Baz extends bar({ x: 1 }) {
|
||||
}
|
Loading…
Reference in a new issue