angular - Gränssnittet 'HTMLIonIconElement' kan inte samtidigt utöka typerna 'IonIcon' och 'HTMLStencilElement'
Jag har precis uppgraderat min Angular Ionic-app till att använda Angular v13 från Angular 12 genom att köra ng update. Uppdateringen var framgångsrik men nu kan jag inte köra appen på grund av nedanstående fel
[ng] Error: node_modules/ionicons/dist/types/components.d.ts:66:15 - error TS2320: Interface 'HTMLIonIconElement' cannot simultaneously extend types 'IonIc
on' and 'HTMLStencilElement'.
[ng] Named property 'ariaHidden' of types 'IonIcon' and 'HTMLStencilElement' are not identical.
[ng]
[ng] 66 interface HTMLIonIconElement extends Components.IonIcon, HTMLStencilElement {
[ng] ~~~~~~~~~~~~~~~~~~
[ng]
[ng]
[ng] Error: node_modules/ionicons/dist/types/components.d.ts:66:15 - error TS2320: Interface 'HTMLIonIconElement' cannot simultaneously extend types 'IonIc
on' and 'HTMLStencilElement'.
[ng] Named property 'ariaLabel' of types 'IonIcon' and 'HTMLStencilElement' are not identical.
[ng]
[ng] 66 interface HTMLIonIconElement extends Components.IonIcon, HTMLStencilElement {
[ng] ~~~~~~~~~~~~~~~~~~
[ng]
[ng]
[ng] Error: node_modules/typescript/lib/lib.dom.d.ts:4632:101 - error TS2344: Type 'HTMLElementTagNameMap[K]' does not satisfy the constraint 'Element'.
[ng] Type 'HTMLElement | HTMLMetaElement | HTMLAnchorElement | HTMLAreaElement | HTMLAudioElement | ... 151 more ... | HTMLMarqueeElement' is not assigna
ble to type 'Element'.
[ng] Type 'HTMLIonIconElement' is not assignable to type 'Element'.
[ng] Property 'ariaHidden' is optional in type 'HTMLIonIconElement' but required in type 'Element'.
[ng]
[ng] 4632 getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
[ng] ~~~~~~~~~~~~~~~~~~~~~~~~
[ng]
[ng]
[ng] Error: node_modules/typescript/lib/lib.dom.d.ts:4953:101 - error TS2344: Type 'HTMLElementTagNameMap[K]' does not satisfy the constraint 'Element'.
[ng] Type 'HTMLElement | HTMLMetaElement | HTMLAnchorElement | HTMLAreaElement | HTMLAudioElement | ... 151 more ... | HTMLMarqueeElement' is not assigna
ble to type 'Element'.
[ng]
[ng] 4953 getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
[ng]
Problemet är att alla filer som klagas på finns i katalogen node_modules. Hur kan jag lösa detta?
Svar #1
För mig lade jag bara till "skipLibCheck": true, i tsconfig.json, se koden nedan:
Svar #2
Det verkar som att ng update uppdaterade TypeScript-versionen till 4.4, men Ionic ion-icon verkar vara inkompatibel med denna version av TypeScript.
Den nuvarande lösningen jag använde var att återgå till TypeScript-version 4.3.5
Hur man utför denna nedgradering :
uppdatera din package.json -> ersätt : "typescript": "~4.4.4" med "typescript": "~4.3.5"
sedan kör -> npm install
Om någon har mer information om den bakomliggande orsaken till denna inkompatibilitet och ett annat sätt att lösa detta är jag mycket intresserad eftersom jag mycket gärna vill uppgradera till TypeScript 4.4.