Интерфейс HTMLIonIconElement не может одновременно расширять типы IonIc on и HTMLStencilElement.

Я только что обновил свое приложение angular ionic, чтобы использовать angular v13 с angular 12, запустив ng update. Обновление прошло успешно, но теперь я не могу запустить приложение из-за ошибок ниже

      [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]        

Проблема в том, что все файлы, на которые жалуются, находятся в каталоге node_modules. Как я могу это решить?

3 ответа

Для себя я просто добавил "skipLibCheck": true,в tsconfig.json см. код ниже:

Кажется, что ng updateобновил версию машинописного текста до 4.4, но ionic ion-icon кажется несовместимым с этой версией машинописного текста.

Текущее исправление, которое я использовал, состояло в том, чтобы вернуться к машинописной версии 4.3.5.

Как выполнить это понижение:

обновите ваш package.json -> заменить: "typescript": "~4.4.4"с "typescript": "~4.3.5"

затем запустите -> npm install

Если у кого-то есть дополнительная информация о первопричине этой несовместимости и другом способе ее решения, мне это очень интересно, так как я очень хотел бы перейти на машинописный текст 4.4.

Что ж, трюк с заменой версии сработал! Для меня проблема возникла, когда я хотел собрать приложение, а затем появилось сообщение об обновлении с angular 12 до 13. После этого появилась какая-то ошибка о том, что модули angular не распознаются.

Теперь у меня нет ошибок при запуске тестов, но я получил ошибку «был заблокирован политикой CORS», когда приложение пытается получить доступ к службам.

Любые дальнейшие отзывы будут оценены.

Другие вопросы по тегам