diff --git a/packages/upgrade/src/common/angular1.ts b/packages/upgrade/src/common/angular1.ts index 85ce530855..a8a4f157a2 100644 --- a/packages/upgrade/src/common/angular1.ts +++ b/packages/upgrade/src/common/angular1.ts @@ -10,7 +10,12 @@ export type Ng1Token = string; export type Ng1Expression = string | Function; -export interface IAnnotatedFunction extends Function { $inject?: ReadonlyArray; } +export interface IAnnotatedFunction extends Function { + // Older versions of `@types/angular` typings extend the global `Function` interface with + // `$inject?: string[]`, which is not compatible with `$inject?: ReadonlyArray` (used in + // latest versions). + $inject?: Function extends{$inject?: string[]}? Ng1Token[]: ReadonlyArray; +} export type IInjectable = (Ng1Token | Function)[] | IAnnotatedFunction;