-
Notifications
You must be signed in to change notification settings - Fork 12.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[NewErrors] 4.8.0-dev.20220609 vs 4.7.3 #49461
Comments
kamranahmedse/developer-roadmap - Ryan collate kamranahmedse/developer-roadmap - Ryan |
kamranahmedse/developer-roadmapconst descendants = useRef(new DescendantsManager<T, K>()) Here, |
Note that I would expect a significant number of these to result from the fact that an unconstrained type parameter is no longer assignable to |
mobxjs/mobxThis method called object<T extends object = any>(
props: T,
decorators?: AnnotationsMap<T, never>,
options?: CreateObservableOptions
): T {
return extendObservable(
globalState.useProxies === false || options?.proxy === false
? asObservableObject({}, options)
: asDynamicObservableObject({}, options),
props,
decorators
)
}, it calls
Adding |
vercel/hyperAll these breaks were in external .d.ts files.
export declare type Migrations<T> = Record<string, (store: Conf<T>) => void>; where declare class Conf<T extends Record<string, any> = Record<string, unknown>> This was fixable by upstreaming the constraint
Key extends keyof WithStringKeys<BaseType> WithStringKeys<BaseType>[Key] This required two layers of upstreaming the constraint, which in turn broke another package ( type Options<T> = Except<ConfOptions<T>, ... |
I believe |
playwrightOstensibly a missing constraint on the type parameter of a subclass whose superclass required a constraint. However, the type of said type parameter is never meaningfully witnessed in the subclass. Its only usage is like this: class DummyChannelOwner<T> extends ChannelOwner<T> {} // unconstrained `T` not assignable to `{}`
// ...
let result: ChannelOwner<any> = new ChannelOwner(/* only inference source typed `any` here */) and then typeormEvery issue was resolvable by adding a missing constraint. The appropriate constraint, for internal consistency, was an interface called Did this catch a real bug: I think so? It’s really hard to tell. The unconstrained apollo-clientFirst one I looked at showed the codefix / related diagnostic as buggy again; duplicated related info and no codefix: Second one, related diagnostic is correct but again no codefix. Starting to wonder if the codefix ever works? A couple more and it appears that this codebase has probably mistaken type parameter defaults for constraints through and through. Virtually every type parameter has a default and no constraint. Many of the defaults are |
react-hook-form
I sent the fixes upstream over at react-hook-form/react-hook-form#8484. code-serverThis repo feels kind of like a less-than-useful benchmark because it's just letting us report over an old copy of VS Code; but I guess it gave us a chance to rerun on VS Code from before they dealt with this break over two months ago (microsoft/vscode@46abb2b). In theory this double type assertion should no longer be necessary @mjbvz. Otherwise, @mjbvz already upgraded to a recent nightly and fixed other breaks due to narrowing, this one involving how functions are no longer narrowed (microsoft/vscode@640898d). Since there was no work for me to do, I will have to defer to the VS Code team's feedback. blueprintI spent a bit of time last week trying to figure this one out with @ahejlsberg. It seems like we have regressed in some capacity with respect to destructuring defaults. @andrewbranch might know more about this since he played around with destructuring recently, but I don't recall the exact change or whether it's even relevant. export interface BarProps {
barProp?: string;
}
export interface FooProps {
fooProps?: BarProps & object;
}
declare const foo: FooProps;
const { fooProps = {} } = foo;
fooProps.barProp;
// ~~~~~~~
// error! Property 'barProp' does not exist on type '{}'.ts(2339) It seems like every single break here comes from this. There's not a clear fix, and it seems like a regression, so I didn't try fixing it (though I spent a lot of time getting a minimal repro). |
I opened up #49480 for the |
Have others sent PRs to these projects? I sent out |
type-fest seems to have been updated already I sent a PR to the other project |
|
* build: Fix build errors in TypeScript 4.8 See microsoft/TypeScript#49461 (comment) * style: Format * removed `.js` extension * removed `.js` extension * removed `.js` extension * fixing compiler errors * fixing compiler errors Co-authored-by: Umed Khudoiberdiev <[email protected]>
The following errors were reported by 4.8.0-dev.20220609, but not by 4.7.3
Pipeline that generated this bug
File that generated the pipeline
kamranahmedse/developer-roadmap
tsconfig.json
error TS2344: Type 'K' does not satisfy the constraint 'Record<string, any>'.
coder/code-server
7 of 57 projects failed to build with the old tsc
src/tsconfig.monaco.json
error TS2322: Type '(_target: T, propKey: PropertyKey) => unknown' is not assignable to type '(target: object, p: string | symbol, receiver: any) => any'.
src/tsconfig.tsec.json
error TS2322: Type '(_target: T, propKey: PropertyKey) => unknown' is not assignable to type '(target: object, p: string | symbol, receiver: any) => any'.
error TS2322: Type 'T' is not assignable to type 'RemoteServiceStub<T>'.
error TS2409: Return type of constructor signature must be assignable to the instance type of the class.
microsoft/playwright
4 of 9 projects failed to build with the old tsc
packages/html-reporter/tsconfig.json
error TS2344: Type 'T' does not satisfy the constraint 'Channel'.
vercel/hyper
2 of 3 projects failed to build with the old tsc
tsconfig.json
error TS2344: Type 'BaseType' does not satisfy the constraint 'Record<string | number, any>'.
error TS2344: Type 'T' does not satisfy the constraint 'Record<string, any>'.
react-hook-form/react-hook-form
2 of 3 projects failed to build with the old tsc
tsconfig.json
error TS2344: Type 'TFieldValues' does not satisfy the constraint 'FieldValues'.
error TS2344: Type 'T' does not satisfy the constraint 'FieldValues'.
error TS2322: Type 'Control<T, any>' is not assignable to type 'Control<FieldValues, any>'.
error TS2345: Argument of type 'U' is not assignable to parameter of type 'Partial<{ shouldValidate: boolean; shouldDirty: boolean; shouldTouch: boolean; }> | undefined'.
error TS2533: Object is possibly 'null' or 'undefined'.
typeorm/typeorm
tsconfig.json
error TS2344: Type 'Entity' does not satisfy the constraint 'ObjectLiteral'.
error TS2345: Argument of type 'DeepPartial<Entity>' is not assignable to parameter of type 'ObjectLiteral'.
error TS2345: Argument of type 'T | T[]' is not assignable to parameter of type 'ObjectLiteral | ObjectLiteral[]'.
error TS2345: Argument of type 'Entity | Entity[]' is not assignable to parameter of type 'ObjectLiteral | ObjectLiteral[]'.
error TS2345: Argument of type 'EntityTarget<Entity>' is not assignable to parameter of type 'EntityTarget<ObjectLiteral>'.
error TS2322: Type 'MongoRepository<ObjectLiteral>' is not assignable to type 'Repository<Entity>'.
error TS2345: Argument of type 'Entity[]' is not assignable to parameter of type 'ObjectLiteral[]'.
error TS2345: Argument of type 'E1 | E1[]' is not assignable to parameter of type 'ObjectLiteral | ObjectLiteral[]'.
error TS2345: Argument of type 'Entity' is not assignable to parameter of type 'ObjectLiteral | undefined'.
error TS2322: Type 'Entity[]' is not assignable to type 'ObjectLiteral[]'.
error TS2345: Argument of type 'T' is not assignable to parameter of type 'ObjectLiteral'.
error TS2344: Type 'T' does not satisfy the constraint 'ObjectLiteral'.
error TS2345: Argument of type 'Entity' is not assignable to parameter of type 'ObjectLiteral'.
error TS2769: No overload matches this call.
error TS2322: Type 'Repository<ObjectLiteral>' is not assignable to type 'Repository<T>'.
mobxjs/mobx
7 of 9 projects failed to build with the old tsc
packages/mobx/tsconfig.json
error TS2322: Type 'IIsObservableObject & Object' is not assignable to type 'T'.
error TS2345: Argument of type 'T' is not assignable to parameter of type 'Object'.
palantir/blueprint
13 of 27 projects failed to build with the old tsc
packages/datetime/src/tsconfig.json
error TS2339: Property 'className' does not exist on type '{}'.
error TS2339: Property 'popoverClassName' does not exist on type '{}'.
error TS2339: Property 'onClose' does not exist on type '{}'.
packages/select/src/tsconfig.json
error TS2339: Property 'fill' does not exist on type '{}'.
error TS2339: Property 'inputProps' does not exist on type '{}'.
error TS2339: Property 'className' does not exist on type '{}'.
error TS2339: Property 'popoverClassName' does not exist on type '{}'.
error TS2339: Property 'modifiers' does not exist on type '{}'.
error TS7006: Parameter 'data' implicitly has an 'any' type.
error TS2339: Property 'usePortal' does not exist on type '{}'.
error TS2339: Property 'wrapperTagName' does not exist on type '{}'.
apollographql/apollo-client
tsconfig.json
error TS2345: Argument of type '{ store: EntityStore; rootId: string; config: InMemoryCacheConfig; previousResult?: any; optimistic: boolean; returnPartialData?: boolean | undefined; canonizeResults?: boolean | undefined; query: DocumentNode | TypedDocumentNode<...>; variables?: TVariables | undefined; id?: string | undefined; }' is not assignable to parameter of type 'DiffQueryAgainstStoreOptions'.
error TS2345: Argument of type 'SubscriptionOptions<TVariables, T>' is not assignable to parameter of type 'SubscriptionOptions<OperationVariables, any>'.
error TS2322: Type 'TSubscriptionVariables | undefined' is not assignable to type 'OperationVariables | undefined'.
error TS2345: Argument of type 'TVariables' is not assignable to parameter of type 'OperationVariables | undefined'.
error TS2345: Argument of type 'TVariables | undefined' is not assignable to parameter of type 'OperationVariables | undefined'.
error TS2322: Type 'ObservableQuery<T, TVariables>' is not assignable to type 'ObservableQuery<any, OperationVariables>'.
error TS2322: Type 'TVariables | undefined' is not assignable to type 'Record<string, any> | undefined'.
error TS2345: Argument of type 'TVars | undefined' is not assignable to parameter of type 'OperationVariables | undefined'.
error TS2345: Argument of type 'Pick<WatchQueryOptions<TVars, TData>, "variables" | "context" | "fetchPolicy" | "errorPolicy">' is not assignable to parameter of type 'Pick<WatchQueryOptions<OperationVariables, any>, "variables" | "fetchPolicy" | "errorPolicy">'.
error TS2345: Argument of type 'TVars | (undefined & TVars)' is not assignable to parameter of type 'OperationVariables | undefined'.
error TS2345: Argument of type '(variables: TVars) => ConcastSourcesIterable<ApolloQueryResult<TData>>' is not assignable to parameter of type '(value: { [x: string]: any; }) => ConcastSourcesIterable<ApolloQueryResult<TData>> | PromiseLike<ConcastSourcesIterable<ApolloQueryResult<TData>>>'.
error TS2345: Argument of type 'WatchQueryOptions<TVars, TData>' is not assignable to parameter of type 'WatchQueryOptions<OperationVariables, any>'.
error TS2322: Type 'TVars | undefined' is not assignable to type 'Record<string, any> | undefined'.
error TS2345: Argument of type 'TVars | undefined' is not assignable to parameter of type 'Record<string, any> | undefined'.
error TS2345: Argument of type 'OperationOption<TProps, TData, TGraphQLVariables, TChildProps, DefaultContext, ApolloCache<any>>' is not assignable to parameter of type 'OperationOption<TProps, Record<string, any>, TGraphQLVariables, TChildProps, DefaultContext, ApolloCache<any>>'.
error TS2322: Type '(mutate: MutationFunction<TData, TGraphQLVariables>, { data, ...r }: MutationResult<TData>) => JSX.Element' is not assignable to type '(mutateFunction: MutationFunction<any, OperationVariables, DefaultContext, ApolloCache<any>>, result: MutationResult<...>) => Element | null'.
error TS2322: Type 'TProps & TChildProps' is not assignable to type 'IntrinsicAttributes & TProps & TChildProps & { children?: ReactNode; }'.
error TS2322: Type 'TChildProps' is not assignable to type '{ [x: string]: any; }'.
error TS2769: No overload matches this call.
error TS2345: Argument of type 'TRelayEdge<TNode>' is not assignable to parameter of type 'Reference | StoreObject | undefined'.
The text was updated successfully, but these errors were encountered: