Интерфейс 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 ответа
Кажется, что
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», когда приложение пытается получить доступ к службам.
Любые дальнейшие отзывы будут оценены.