mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-06 11:54:44 -06:00
Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
This commit is contained in:
parent
9df7c36aa9
commit
7aa63df74c
@ -6249,7 +6249,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
return true;
|
||||
}
|
||||
if (requiresAddingUndefined && annotationType) {
|
||||
annotationType = getOptionalType(annotationType, !isParameter(node));
|
||||
annotationType = addOptionality(annotationType, !isParameter(node));
|
||||
}
|
||||
return !!annotationType && typeNodeIsEquivalentToType(node, type, annotationType) && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type);
|
||||
},
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks1.ts] ////
|
||||
|
||||
//// [createApi.ts]
|
||||
type Id<T> = {
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
originalArgs?: undefined;
|
||||
}>;
|
||||
};
|
||||
|
||||
//// [index.ts]
|
||||
import { createApi } from "./createApi";
|
||||
|
||||
const slice = createApi({
|
||||
endpoints: {
|
||||
test: {
|
||||
url: `/user`,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
|
||||
|
||||
|
||||
|
||||
//// [createApi.d.ts]
|
||||
type Id<T> = {
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
export declare function createApi<Definitions>(_: {
|
||||
endpoints: Definitions;
|
||||
}): {
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
originalArgs?: undefined;
|
||||
}>;
|
||||
};
|
||||
export {};
|
||||
//// [index.d.ts]
|
||||
export declare const useTestQuery: () => {
|
||||
status: "uninitialized";
|
||||
originalArgs?: undefined;
|
||||
};
|
||||
@ -0,0 +1,63 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks1.ts] ////
|
||||
|
||||
=== createApi.ts ===
|
||||
type Id<T> = {
|
||||
>Id : Symbol(Id, Decl(createApi.ts, 0, 0))
|
||||
>T : Symbol(T, Decl(createApi.ts, 0, 8))
|
||||
|
||||
[K in keyof T]: T[K];
|
||||
>K : Symbol(K, Decl(createApi.ts, 1, 3))
|
||||
>T : Symbol(T, Decl(createApi.ts, 0, 8))
|
||||
>T : Symbol(T, Decl(createApi.ts, 0, 8))
|
||||
>K : Symbol(K, Decl(createApi.ts, 1, 3))
|
||||
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
>createApi : Symbol(createApi, Decl(createApi.ts, 2, 7))
|
||||
>Definitions : Symbol(Definitions, Decl(createApi.ts, 4, 34))
|
||||
>_ : Symbol(_, Decl(createApi.ts, 4, 47))
|
||||
>endpoints : Symbol(endpoints, Decl(createApi.ts, 4, 51))
|
||||
>Definitions : Symbol(Definitions, Decl(createApi.ts, 4, 34))
|
||||
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
>K : Symbol(K, Decl(createApi.ts, 5, 3))
|
||||
>Definitions : Symbol(Definitions, Decl(createApi.ts, 4, 34))
|
||||
>Capitalize : Symbol(Capitalize, Decl(lib.es5.d.ts, --, --))
|
||||
>K : Symbol(K, Decl(createApi.ts, 5, 3))
|
||||
>Id : Symbol(Id, Decl(createApi.ts, 0, 0))
|
||||
|
||||
status: "uninitialized";
|
||||
>status : Symbol(status, Decl(createApi.ts, 5, 77))
|
||||
|
||||
originalArgs?: undefined;
|
||||
>originalArgs : Symbol(originalArgs, Decl(createApi.ts, 6, 28))
|
||||
|
||||
}>;
|
||||
};
|
||||
|
||||
=== index.ts ===
|
||||
import { createApi } from "./createApi";
|
||||
>createApi : Symbol(createApi, Decl(index.ts, 0, 8))
|
||||
|
||||
const slice = createApi({
|
||||
>slice : Symbol(slice, Decl(index.ts, 2, 5))
|
||||
>createApi : Symbol(createApi, Decl(index.ts, 0, 8))
|
||||
|
||||
endpoints: {
|
||||
>endpoints : Symbol(endpoints, Decl(index.ts, 2, 25))
|
||||
|
||||
test: {
|
||||
>test : Symbol(test, Decl(index.ts, 3, 14))
|
||||
|
||||
url: `/user`,
|
||||
>url : Symbol(url, Decl(index.ts, 4, 11))
|
||||
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
>useTestQuery : Symbol(useTestQuery, Decl(index.ts, 10, 14))
|
||||
>slice : Symbol(slice, Decl(index.ts, 2, 5))
|
||||
|
||||
@ -0,0 +1,73 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks1.ts] ////
|
||||
|
||||
=== createApi.ts ===
|
||||
type Id<T> = {
|
||||
>Id : { [K in keyof T]: T[K]; }
|
||||
> : ^^^ ^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
>createApi : <Definitions>(_: { endpoints: Definitions; }) => { [K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{ status: "uninitialized"; originalArgs?: undefined; }>; }
|
||||
> : ^ ^^ ^^ ^^^^^
|
||||
>_ : { endpoints: Definitions; }
|
||||
> : ^^^^^^^^^^^^^ ^^^
|
||||
>endpoints : Definitions
|
||||
> : ^^^^^^^^^^^
|
||||
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
>status : "uninitialized"
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
|
||||
originalArgs?: undefined;
|
||||
>originalArgs : undefined
|
||||
> : ^^^^^^^^^
|
||||
|
||||
}>;
|
||||
};
|
||||
|
||||
=== index.ts ===
|
||||
import { createApi } from "./createApi";
|
||||
>createApi : <Definitions>(_: { endpoints: Definitions; }) => { [K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => { status: "uninitialized"; originalArgs?: undefined; }; }
|
||||
> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^
|
||||
|
||||
const slice = createApi({
|
||||
>slice : { useTestQuery: () => { status: "uninitialized"; originalArgs?: undefined; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^
|
||||
>createApi({ endpoints: { test: { url: `/user`, }, },}) : { useTestQuery: () => { status: "uninitialized"; originalArgs?: undefined; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^
|
||||
>createApi : <Definitions>(_: { endpoints: Definitions; }) => { [K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => { status: "uninitialized"; originalArgs?: undefined; }; }
|
||||
> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^
|
||||
>{ endpoints: { test: { url: `/user`, }, },} : { endpoints: { test: { url: string; }; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
endpoints: {
|
||||
>endpoints : { test: { url: string; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>{ test: { url: `/user`, }, } : { test: { url: string; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
test: {
|
||||
>test : { url: string; }
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>{ url: `/user`, } : { url: string; }
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
|
||||
url: `/user`,
|
||||
>url : string
|
||||
> : ^^^^^^
|
||||
>`/user` : "/user"
|
||||
> : ^^^^^^^
|
||||
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
>useTestQuery : () => { status: "uninitialized"; originalArgs?: undefined; }
|
||||
> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^
|
||||
>slice : { useTestQuery: () => { status: "uninitialized"; originalArgs?: undefined; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks2.ts] ////
|
||||
|
||||
//// [createApi.ts]
|
||||
type Id<T> = {
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
originalArgs?: any[];
|
||||
}>;
|
||||
};
|
||||
|
||||
//// [index.ts]
|
||||
import { createApi } from "./createApi";
|
||||
|
||||
const slice = createApi({
|
||||
endpoints: {
|
||||
test: {
|
||||
url: `/user`,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
|
||||
|
||||
|
||||
|
||||
//// [createApi.d.ts]
|
||||
type Id<T> = {
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
export declare function createApi<Definitions>(_: {
|
||||
endpoints: Definitions;
|
||||
}): {
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
originalArgs?: any[];
|
||||
}>;
|
||||
};
|
||||
export {};
|
||||
//// [index.d.ts]
|
||||
export declare const useTestQuery: () => {
|
||||
status: "uninitialized";
|
||||
originalArgs?: any[];
|
||||
};
|
||||
@ -0,0 +1,63 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks2.ts] ////
|
||||
|
||||
=== createApi.ts ===
|
||||
type Id<T> = {
|
||||
>Id : Symbol(Id, Decl(createApi.ts, 0, 0))
|
||||
>T : Symbol(T, Decl(createApi.ts, 0, 8))
|
||||
|
||||
[K in keyof T]: T[K];
|
||||
>K : Symbol(K, Decl(createApi.ts, 1, 3))
|
||||
>T : Symbol(T, Decl(createApi.ts, 0, 8))
|
||||
>T : Symbol(T, Decl(createApi.ts, 0, 8))
|
||||
>K : Symbol(K, Decl(createApi.ts, 1, 3))
|
||||
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
>createApi : Symbol(createApi, Decl(createApi.ts, 2, 7))
|
||||
>Definitions : Symbol(Definitions, Decl(createApi.ts, 4, 34))
|
||||
>_ : Symbol(_, Decl(createApi.ts, 4, 47))
|
||||
>endpoints : Symbol(endpoints, Decl(createApi.ts, 4, 51))
|
||||
>Definitions : Symbol(Definitions, Decl(createApi.ts, 4, 34))
|
||||
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
>K : Symbol(K, Decl(createApi.ts, 5, 3))
|
||||
>Definitions : Symbol(Definitions, Decl(createApi.ts, 4, 34))
|
||||
>Capitalize : Symbol(Capitalize, Decl(lib.es5.d.ts, --, --))
|
||||
>K : Symbol(K, Decl(createApi.ts, 5, 3))
|
||||
>Id : Symbol(Id, Decl(createApi.ts, 0, 0))
|
||||
|
||||
status: "uninitialized";
|
||||
>status : Symbol(status, Decl(createApi.ts, 5, 77))
|
||||
|
||||
originalArgs?: any[];
|
||||
>originalArgs : Symbol(originalArgs, Decl(createApi.ts, 6, 28))
|
||||
|
||||
}>;
|
||||
};
|
||||
|
||||
=== index.ts ===
|
||||
import { createApi } from "./createApi";
|
||||
>createApi : Symbol(createApi, Decl(index.ts, 0, 8))
|
||||
|
||||
const slice = createApi({
|
||||
>slice : Symbol(slice, Decl(index.ts, 2, 5))
|
||||
>createApi : Symbol(createApi, Decl(index.ts, 0, 8))
|
||||
|
||||
endpoints: {
|
||||
>endpoints : Symbol(endpoints, Decl(index.ts, 2, 25))
|
||||
|
||||
test: {
|
||||
>test : Symbol(test, Decl(index.ts, 3, 14))
|
||||
|
||||
url: `/user`,
|
||||
>url : Symbol(url, Decl(index.ts, 4, 11))
|
||||
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
>useTestQuery : Symbol(useTestQuery, Decl(index.ts, 10, 14))
|
||||
>slice : Symbol(slice, Decl(index.ts, 2, 5))
|
||||
|
||||
@ -0,0 +1,73 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks2.ts] ////
|
||||
|
||||
=== createApi.ts ===
|
||||
type Id<T> = {
|
||||
>Id : { [K in keyof T]: T[K]; }
|
||||
> : ^^^ ^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
>createApi : <Definitions>(_: { endpoints: Definitions; }) => { [K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{ status: "uninitialized"; originalArgs?: any[]; }>; }
|
||||
> : ^ ^^ ^^ ^^^^^
|
||||
>_ : { endpoints: Definitions; }
|
||||
> : ^^^^^^^^^^^^^ ^^^
|
||||
>endpoints : Definitions
|
||||
> : ^^^^^^^^^^^
|
||||
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
>status : "uninitialized"
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
|
||||
originalArgs?: any[];
|
||||
>originalArgs : any[]
|
||||
> : ^^^^^
|
||||
|
||||
}>;
|
||||
};
|
||||
|
||||
=== index.ts ===
|
||||
import { createApi } from "./createApi";
|
||||
>createApi : <Definitions>(_: { endpoints: Definitions; }) => { [K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => { status: "uninitialized"; originalArgs?: any[]; }; }
|
||||
> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^
|
||||
|
||||
const slice = createApi({
|
||||
>slice : { useTestQuery: () => { status: "uninitialized"; originalArgs?: any[]; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^
|
||||
>createApi({ endpoints: { test: { url: `/user`, }, },}) : { useTestQuery: () => { status: "uninitialized"; originalArgs?: any[]; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^
|
||||
>createApi : <Definitions>(_: { endpoints: Definitions; }) => { [K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => { status: "uninitialized"; originalArgs?: any[]; }; }
|
||||
> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^
|
||||
>{ endpoints: { test: { url: `/user`, }, },} : { endpoints: { test: { url: string; }; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
endpoints: {
|
||||
>endpoints : { test: { url: string; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>{ test: { url: `/user`, }, } : { test: { url: string; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
test: {
|
||||
>test : { url: string; }
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>{ url: `/user`, } : { url: string; }
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
|
||||
url: `/user`,
|
||||
>url : string
|
||||
> : ^^^^^^
|
||||
>`/user` : "/user"
|
||||
> : ^^^^^^^
|
||||
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
>useTestQuery : () => { status: "uninitialized"; originalArgs?: any[]; }
|
||||
> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^
|
||||
>slice : { useTestQuery: () => { status: "uninitialized"; originalArgs?: any[]; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks3.ts] ////
|
||||
|
||||
//// [createApi.ts]
|
||||
type Id<T> = {
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
originalArgs?: never;
|
||||
}>;
|
||||
};
|
||||
|
||||
//// [index.ts]
|
||||
import { createApi } from "./createApi";
|
||||
|
||||
const slice = createApi({
|
||||
endpoints: {
|
||||
test: {
|
||||
url: `/user`,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
|
||||
|
||||
|
||||
|
||||
//// [createApi.d.ts]
|
||||
type Id<T> = {
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
export declare function createApi<Definitions>(_: {
|
||||
endpoints: Definitions;
|
||||
}): {
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
originalArgs?: never;
|
||||
}>;
|
||||
};
|
||||
export {};
|
||||
//// [index.d.ts]
|
||||
export declare const useTestQuery: () => {
|
||||
status: "uninitialized";
|
||||
originalArgs?: never;
|
||||
};
|
||||
@ -0,0 +1,63 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks3.ts] ////
|
||||
|
||||
=== createApi.ts ===
|
||||
type Id<T> = {
|
||||
>Id : Symbol(Id, Decl(createApi.ts, 0, 0))
|
||||
>T : Symbol(T, Decl(createApi.ts, 0, 8))
|
||||
|
||||
[K in keyof T]: T[K];
|
||||
>K : Symbol(K, Decl(createApi.ts, 1, 3))
|
||||
>T : Symbol(T, Decl(createApi.ts, 0, 8))
|
||||
>T : Symbol(T, Decl(createApi.ts, 0, 8))
|
||||
>K : Symbol(K, Decl(createApi.ts, 1, 3))
|
||||
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
>createApi : Symbol(createApi, Decl(createApi.ts, 2, 7))
|
||||
>Definitions : Symbol(Definitions, Decl(createApi.ts, 4, 34))
|
||||
>_ : Symbol(_, Decl(createApi.ts, 4, 47))
|
||||
>endpoints : Symbol(endpoints, Decl(createApi.ts, 4, 51))
|
||||
>Definitions : Symbol(Definitions, Decl(createApi.ts, 4, 34))
|
||||
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
>K : Symbol(K, Decl(createApi.ts, 5, 3))
|
||||
>Definitions : Symbol(Definitions, Decl(createApi.ts, 4, 34))
|
||||
>Capitalize : Symbol(Capitalize, Decl(lib.es5.d.ts, --, --))
|
||||
>K : Symbol(K, Decl(createApi.ts, 5, 3))
|
||||
>Id : Symbol(Id, Decl(createApi.ts, 0, 0))
|
||||
|
||||
status: "uninitialized";
|
||||
>status : Symbol(status, Decl(createApi.ts, 5, 77))
|
||||
|
||||
originalArgs?: never;
|
||||
>originalArgs : Symbol(originalArgs, Decl(createApi.ts, 6, 28))
|
||||
|
||||
}>;
|
||||
};
|
||||
|
||||
=== index.ts ===
|
||||
import { createApi } from "./createApi";
|
||||
>createApi : Symbol(createApi, Decl(index.ts, 0, 8))
|
||||
|
||||
const slice = createApi({
|
||||
>slice : Symbol(slice, Decl(index.ts, 2, 5))
|
||||
>createApi : Symbol(createApi, Decl(index.ts, 0, 8))
|
||||
|
||||
endpoints: {
|
||||
>endpoints : Symbol(endpoints, Decl(index.ts, 2, 25))
|
||||
|
||||
test: {
|
||||
>test : Symbol(test, Decl(index.ts, 3, 14))
|
||||
|
||||
url: `/user`,
|
||||
>url : Symbol(url, Decl(index.ts, 4, 11))
|
||||
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
>useTestQuery : Symbol(useTestQuery, Decl(index.ts, 10, 14))
|
||||
>slice : Symbol(slice, Decl(index.ts, 2, 5))
|
||||
|
||||
@ -0,0 +1,73 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks3.ts] ////
|
||||
|
||||
=== createApi.ts ===
|
||||
type Id<T> = {
|
||||
>Id : { [K in keyof T]: T[K]; }
|
||||
> : ^^^ ^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
>createApi : <Definitions>(_: { endpoints: Definitions; }) => { [K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{ status: "uninitialized"; originalArgs?: never; }>; }
|
||||
> : ^ ^^ ^^ ^^^^^
|
||||
>_ : { endpoints: Definitions; }
|
||||
> : ^^^^^^^^^^^^^ ^^^
|
||||
>endpoints : Definitions
|
||||
> : ^^^^^^^^^^^
|
||||
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
>status : "uninitialized"
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
|
||||
originalArgs?: never;
|
||||
>originalArgs : never
|
||||
> : ^^^^^
|
||||
|
||||
}>;
|
||||
};
|
||||
|
||||
=== index.ts ===
|
||||
import { createApi } from "./createApi";
|
||||
>createApi : <Definitions>(_: { endpoints: Definitions; }) => { [K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => { status: "uninitialized"; originalArgs?: never; }; }
|
||||
> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^
|
||||
|
||||
const slice = createApi({
|
||||
>slice : { useTestQuery: () => { status: "uninitialized"; originalArgs?: never; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^
|
||||
>createApi({ endpoints: { test: { url: `/user`, }, },}) : { useTestQuery: () => { status: "uninitialized"; originalArgs?: never; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^
|
||||
>createApi : <Definitions>(_: { endpoints: Definitions; }) => { [K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => { status: "uninitialized"; originalArgs?: never; }; }
|
||||
> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^
|
||||
>{ endpoints: { test: { url: `/user`, }, },} : { endpoints: { test: { url: string; }; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
endpoints: {
|
||||
>endpoints : { test: { url: string; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>{ test: { url: `/user`, }, } : { test: { url: string; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
test: {
|
||||
>test : { url: string; }
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>{ url: `/user`, } : { url: string; }
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
|
||||
url: `/user`,
|
||||
>url : string
|
||||
> : ^^^^^^
|
||||
>`/user` : "/user"
|
||||
> : ^^^^^^^
|
||||
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
>useTestQuery : () => { status: "uninitialized"; originalArgs?: never; }
|
||||
> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^
|
||||
>slice : { useTestQuery: () => { status: "uninitialized"; originalArgs?: never; }; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts] ////
|
||||
|
||||
//// [declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts]
|
||||
type InputType = { enable_member_receipts?: boolean };
|
||||
type AsEmptyObject<T> = { [K in keyof T]?: undefined };
|
||||
|
||||
export const test = {
|
||||
...({} as AsEmptyObject<InputType>),
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
//// [declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.d.ts]
|
||||
export declare const test: {
|
||||
enable_member_receipts?: undefined;
|
||||
};
|
||||
@ -0,0 +1,22 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts] ////
|
||||
|
||||
=== declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts ===
|
||||
type InputType = { enable_member_receipts?: boolean };
|
||||
>InputType : Symbol(InputType, Decl(declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts, 0, 0))
|
||||
>enable_member_receipts : Symbol(enable_member_receipts, Decl(declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts, 0, 18))
|
||||
|
||||
type AsEmptyObject<T> = { [K in keyof T]?: undefined };
|
||||
>AsEmptyObject : Symbol(AsEmptyObject, Decl(declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts, 0, 54))
|
||||
>T : Symbol(T, Decl(declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts, 1, 19))
|
||||
>K : Symbol(K, Decl(declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts, 1, 27))
|
||||
>T : Symbol(T, Decl(declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts, 1, 19))
|
||||
|
||||
export const test = {
|
||||
>test : Symbol(test, Decl(declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts, 3, 12))
|
||||
|
||||
...({} as AsEmptyObject<InputType>),
|
||||
>AsEmptyObject : Symbol(AsEmptyObject, Decl(declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts, 0, 54))
|
||||
>InputType : Symbol(InputType, Decl(declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts, 0, 0))
|
||||
|
||||
};
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
//// [tests/cases/compiler/declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts] ////
|
||||
|
||||
=== declarationEmitOptionalMappedTypePropertyNoStrictNullChecks4.ts ===
|
||||
type InputType = { enable_member_receipts?: boolean };
|
||||
>InputType : InputType
|
||||
> : ^^^^^^^^^
|
||||
>enable_member_receipts : boolean
|
||||
> : ^^^^^^^
|
||||
|
||||
type AsEmptyObject<T> = { [K in keyof T]?: undefined };
|
||||
>AsEmptyObject : AsEmptyObject<T>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
|
||||
export const test = {
|
||||
>test : { enable_member_receipts?: undefined; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>{ ...({} as AsEmptyObject<InputType>),} : { enable_member_receipts?: undefined; }
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
...({} as AsEmptyObject<InputType>),
|
||||
>({} as AsEmptyObject<InputType>) : AsEmptyObject<InputType>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>{} as AsEmptyObject<InputType> : AsEmptyObject<InputType>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>{} : {}
|
||||
> : ^^
|
||||
|
||||
};
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
// @strictNullChecks: false
|
||||
// @declaration: true
|
||||
// @emitDeclarationOnly: true
|
||||
|
||||
// @filename: createApi.ts
|
||||
|
||||
type Id<T> = {
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
originalArgs?: undefined;
|
||||
}>;
|
||||
};
|
||||
|
||||
// @filename: index.ts
|
||||
|
||||
import { createApi } from "./createApi";
|
||||
|
||||
const slice = createApi({
|
||||
endpoints: {
|
||||
test: {
|
||||
url: `/user`,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
@ -0,0 +1,30 @@
|
||||
// @strictNullChecks: false
|
||||
// @declaration: true
|
||||
// @emitDeclarationOnly: true
|
||||
|
||||
// @filename: createApi.ts
|
||||
|
||||
type Id<T> = {
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
originalArgs?: any[];
|
||||
}>;
|
||||
};
|
||||
|
||||
// @filename: index.ts
|
||||
|
||||
import { createApi } from "./createApi";
|
||||
|
||||
const slice = createApi({
|
||||
endpoints: {
|
||||
test: {
|
||||
url: `/user`,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
@ -0,0 +1,30 @@
|
||||
// @strictNullChecks: false
|
||||
// @declaration: true
|
||||
// @emitDeclarationOnly: true
|
||||
|
||||
// @filename: createApi.ts
|
||||
|
||||
type Id<T> = {
|
||||
[K in keyof T]: T[K];
|
||||
} & {};
|
||||
|
||||
export declare function createApi<Definitions>(_: { endpoints: Definitions }): {
|
||||
[K in keyof Definitions as `use${Capitalize<K & string>}Query`]: () => Id<{
|
||||
status: "uninitialized";
|
||||
originalArgs?: never;
|
||||
}>;
|
||||
};
|
||||
|
||||
// @filename: index.ts
|
||||
|
||||
import { createApi } from "./createApi";
|
||||
|
||||
const slice = createApi({
|
||||
endpoints: {
|
||||
test: {
|
||||
url: `/user`,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { useTestQuery } = slice;
|
||||
@ -0,0 +1,10 @@
|
||||
// @strictNullChecks: false
|
||||
// @declaration: true
|
||||
// @emitDeclarationOnly: true
|
||||
|
||||
type InputType = { enable_member_receipts?: boolean };
|
||||
type AsEmptyObject<T> = { [K in keyof T]?: undefined };
|
||||
|
||||
export const test = {
|
||||
...({} as AsEmptyObject<InputType>),
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user