mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
dfe7be4d2a
The static `ɵprov` field emitted on `@Injectable()` classes uses `ɵɵInjectableDeclaration<T>`.
When a subclass extends a generic `@Injectable()` base class with contravariant parameters
(such as callback/transformer methods depending on generic type parameters), TypeScript's
static side inheritance check (`typeof Sub extends typeof Super`) fails with `TS2417` because
`ɵɵInjectableDeclaration<Sub>` is not assignable to `ɵɵInjectableDeclaration<Super<any>>`.
Using `any` (`o.DYNAMIC_TYPE`) in `createInjectableType` avoids strict variance checks on
static inheritance for internal Ivy definitions and aligns with other Ivy declaration types.
(cherry picked from commit caeab598c9)
7.2 KiB
7.2 KiB
API Report File for "@angular/platform-browser"
Do not edit this file. It is a report generated by API Extractor.
import { ApplicationConfig } from '@angular/core';
import { ApplicationRef } from '@angular/core';
import { ComponentRef } from '@angular/core';
import { DebugElement } from '@angular/core';
import { DebugNode } from '@angular/core';
import { EnvironmentProviders } from '@angular/core';
import { HttpTransferCacheOptions } from '@angular/common/http';
import * as i0 from '@angular/core';
import * as i1 from '@angular/common';
import { InjectionToken } from '@angular/core';
import { ListenerOptions } from '@angular/core';
import { NgZone } from '@angular/core';
import { PlatformRef } from '@angular/core';
import { Predicate } from '@angular/core';
import { Provider } from '@angular/core';
import { Sanitizer } from '@angular/core';
import { SecurityContext } from '@angular/core';
import { StaticProvider } from '@angular/core';
import { Type } from '@angular/core';
import { Version } from '@angular/core';
// @public
export function bootstrapApplication(rootComponent: Type<unknown>, options?: ApplicationConfig, context?: BootstrapContext): Promise<ApplicationRef>;
// @public
export interface BootstrapContext {
platformRef: PlatformRef;
}
// @public
export class BrowserModule {
constructor();
// (undocumented)
static ɵfac: i0.ɵɵFactoryDeclaration<BrowserModule, never>;
// (undocumented)
static ɵinj: i0.ɵɵInjectorDeclaration<BrowserModule>;
// (undocumented)
static ɵmod: i0.ɵɵNgModuleDeclaration<BrowserModule, never, never, [typeof i1.CommonModule, typeof i0.ApplicationModule]>;
}
// @public
export class By {
static all(): Predicate<DebugNode>;
static css(selector: string): Predicate<DebugElement>;
static directive(type: Type<any>): Predicate<DebugNode>;
}
// @public
export function createApplication(options?: ApplicationConfig, context?: BootstrapContext): Promise<ApplicationRef>;
// @public
export class CssVarNamespacer {
namespace(name: string): string;
// (undocumented)
static ɵfac: i0.ɵɵFactoryDeclaration<CssVarNamespacer, never>;
// (undocumented)
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
}
// @public
export function disableDebugTools(): void;
// @public
export abstract class DomSanitizer implements Sanitizer {
abstract bypassSecurityTrustHtml(value: string): SafeHtml;
abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;
abstract bypassSecurityTrustScript(value: string): SafeScript;
abstract bypassSecurityTrustStyle(value: string): SafeStyle;
abstract bypassSecurityTrustUrl(value: string): SafeUrl;
abstract sanitize(context: SecurityContext, value: SafeValue | string | null): string | null;
// (undocumented)
static ɵfac: i0.ɵɵFactoryDeclaration<DomSanitizer, never>;
// (undocumented)
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
}
// @public
export function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T>;
// @public
export const EVENT_MANAGER_PLUGINS: InjectionToken<EventManagerPlugin[]>;
// @public
export class EventManager {
constructor(plugins: EventManagerPlugin[], _zone: NgZone);
addEventListener(element: HTMLElement, eventName: string, handler: Function, options?: ListenerOptions): Function;
getZone(): NgZone;
// (undocumented)
static ɵfac: i0.ɵɵFactoryDeclaration<EventManager, never>;
// (undocumented)
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
}
// @public
export abstract class EventManagerPlugin {
constructor(_doc: any);
abstract addEventListener(element: HTMLElement, eventName: string, handler: Function, options?: ListenerOptions): Function;
// (undocumented)
manager: EventManager;
abstract supports(eventName: string): boolean;
}
// @public
export interface HydrationFeature<FeatureKind extends HydrationFeatureKind> {
// (undocumented)
ɵkind: FeatureKind;
// (undocumented)
ɵproviders: Provider[];
}
// @public
export enum HydrationFeatureKind {
// (undocumented)
EventReplay = 3,
// (undocumented)
HttpTransferCacheOptions = 1,
// (undocumented)
I18nSupport = 2,
// (undocumented)
IncrementalHydration = 4,
// (undocumented)
NoHttpTransferCache = 0,
// (undocumented)
NoIncrementalHydration = 5
}
// @public
export class Meta {
addTag(tag: MetaDefinition, forceCreation?: boolean): HTMLMetaElement | null;
addTags(tags: MetaDefinition[], forceCreation?: boolean): HTMLMetaElement[];
getTag(attrSelector: string): HTMLMetaElement | null;
getTags(attrSelector: string): HTMLMetaElement[];
removeTag(attrSelector: string): void;
removeTagElement(meta: HTMLMetaElement): void;
updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement | null;
// (undocumented)
static ɵfac: i0.ɵɵFactoryDeclaration<Meta, never>;
// (undocumented)
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
}
// @public
export type MetaDefinition = {
charset?: string;
content?: string;
httpEquiv?: string;
id?: string;
itemprop?: string;
name?: string;
property?: string;
scheme?: string;
url?: string;
} & {
[prop: string]: string;
};
// @public
export const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef;
// @public
export function provideClientHydration(...features: HydrationFeature<HydrationFeatureKind>[]): EnvironmentProviders;
// @public
export function provideCssVarNamespacing(namespace?: string): EnvironmentProviders;
// @public
export function provideProtractorTestingSupport(options?: {
usePendingTasksForStability?: boolean;
}): Provider[];
// @public
export const REMOVE_STYLES_ON_COMPONENT_DESTROY: InjectionToken<boolean>;
// @public
export interface SafeHtml extends SafeValue {
}
// @public
export interface SafeResourceUrl extends SafeValue {
}
// @public
export interface SafeScript extends SafeValue {
}
// @public
export interface SafeStyle extends SafeValue {
}
// @public
export interface SafeUrl extends SafeValue {
}
// @public
export interface SafeValue {
}
// @public
export class Title {
constructor(_doc: any);
getTitle(): string;
setTitle(newTitle: string): void;
// (undocumented)
static ɵfac: i0.ɵɵFactoryDeclaration<Title, never>;
// (undocumented)
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
}
// @public (undocumented)
export const VERSION: Version;
// @public
export function withEventReplay(): HydrationFeature<HydrationFeatureKind.EventReplay>;
// @public
export function withHttpTransferCacheOptions(options: HttpTransferCacheOptions): HydrationFeature<HydrationFeatureKind.HttpTransferCacheOptions>;
// @public
export function withI18nSupport(): HydrationFeature<HydrationFeatureKind.I18nSupport>;
// @public @deprecated
export function withIncrementalHydration(): HydrationFeature<HydrationFeatureKind.IncrementalHydration>;
// @public
export function withNoHttpTransferCache(): HydrationFeature<HydrationFeatureKind.NoHttpTransferCache>;
// @public
export function withNoIncrementalHydration(): HydrationFeature<HydrationFeatureKind.NoIncrementalHydration>;
// (No @packageDocumentation comment for this package)