Ошибка TS2707 Универсальный тип «ɵɵDirectiveDeclaration» требует от 6 до 8 аргументов типа

После установки углового материала и добавления углового импорта материала в app.module.ts в проект у меня возникли ошибки, и все решения пока не работали. У меня угловой 14, узел 16. Первая ошибка, которая на самом деле намного длиннее:

Error: node_modules/@angular/cdk/a11y/index.d.ts:152:18 - error TS2707: Generic type 'ɵɵDirectiveDeclaration' requires between 6 and 8 type arguments.

152     static ɵdir: i0.ɵɵDirectiveDeclaration<CdkAriaLive, "[cdkAriaLive]", ["cdkAriaLive"], { "politeness": "cdkAriaLive"; "duration": "cdkAriaLiveDuration"; }, {}, never, never, false, never>;
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Error: node_modules/@angular/cdk/a11y/index.d.ts:175:18 - error TS2707: Generic type 'ɵɵDirectiveDeclaration' requires between 6 and 8 type arguments.

175     static ɵdir: i0.ɵɵDirectiveDeclaration<CdkMonitorFocus, "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", ["cdkMonitorFocus"], {}, { "cdkFocusChange": "cdkFocusChange"; }, never, never, false, never>;
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Error: node_modules/@angular/cdk/a11y/index.d.ts:208:18 - error TS2707: Generic type 'ɵɵDirectiveDeclaration' requires between 6 and 8 type arguments.

208     static ɵdir: i0.ɵɵDirectiveDeclaration<CdkTrapFocus, "[cdkTrapFocus]", ["cdkTrapFocus"], { "enabled": "cdkTrapFocus"; "autoCapture": "cdkTrapFocusAutoCapture"; }, {}, never, never, false, never>;
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Error: node_modules/@angular/cdk/bidi/index.d.ts:37:18 - error TS2707: Generic type 'ɵɵDirectiveDeclaration' requires between 6 and 8 type arguments.

37     static ɵdir: i0.ɵɵDirectiveDeclaration<Dir, "[dir]", ["dir"], { "dir": "dir"; }, { "change": "dirChange"; }, never, never, false, never>;
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




{
  "name": "highlight",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "watch": "ng build --watch --configuration development",
    "test": "ng test"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^14.2.4",
    "@angular/cdk": "^15.0.0",
    "@angular/common": "^14.2.4",
    "@angular/compiler": "^14.2.4",
    "@angular/core": "^14.2.4",
    "@angular/forms": "^14.2.4",
    "@angular/material": "^15.0.0",
    "@angular/platform-browser": "^14.2.4",
    "@angular/platform-browser-dynamic": "^14.2.4",
    "@angular/router": "^14.2.4",
    "@fortawesome/angular-fontawesome": "^0.11.1",
    "@fortawesome/fontawesome-svg-core": "^6.2.0",
    "@fortawesome/free-solid-svg-icons": "^6.2.0",
    "@ng-bootstrap/ng-bootstrap": "^13.0.0",
    "@popperjs/core": "^2.11.6",
    "@syncfusion/ej2-angular-calendars": "^20.3.56",
    "apexcharts": "^3.36.3",
    "bootstrap": "^5.2.2",
    "jwt-decode": "^3.1.2",
    "ng-apexcharts": "^1.7.4",
    "rxjs": "~6.6.0",
    "tslib": "^2.3.0",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^14.2.4",
    "@angular/cli": "^14.2.4",
    "@angular/compiler-cli": "^14.2.4",
    "@angular/localize": "^14.2.4",
    "@types/jasmine": "~3.8.0",
    "@types/node": "^12.11.1",
    "jasmine-core": "~3.8.0",
    "karma": "~6.3.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage": "~2.0.3",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "~1.7.0",
    "typescript": "4.7"
  }
}

Я пытался удалить node_modules, .angular и установку npm. Не работает. Затем я попытался переустановить материал angular - npm install --save @angular/material @angular/cdk - выдал ошибку, но другую. Я подозреваю, что это показывает более ясную причину моей фактической ошибки. Как было предложено в ошибке, я попробовал команды npm install --legacy-peer-deps, --force, npm install --save --legacy-peer-deps, не сработало. Может быть у кого-то больше опыта и он признает проблему?

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: [email protected]
npm ERR! Found: @angular/[email protected]
npm ERR! node_modules/@angular/common
npm ERR!   @angular/common@"^14.2.4" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer @angular/common@"^15.0.0 || ^16.0.0" from @angular/[email protected]
npm ERR! node_modules/@angular/cdk
npm ERR!   @angular/cdk@"^15.0.0" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

Мой результат ng v:

Angular CLI: 14.2.10
Node: 16.10.0
Package Manager: npm 7.24.0 
OS: darwin x64

Angular: 14.2.12
... animations, common, compiler, compiler-cli, core, forms
... localize, platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1402.10
@angular-devkit/build-angular   14.2.10
@angular-devkit/core            14.2.10
@angular-devkit/schematics      14.2.10
@angular/cdk                    15.0.1
@angular/cli                    14.2.10
@angular/material               15.0.1
@schematics/angular             14.2.10
rxjs                            6.6.7
typescript                      4.7.4

Получили ли вы какое-либо решение для этого .. Я столкнулся с той же проблемой.

Shilpi Jaiswal 01.12.2022 07:10

@ShilpiJaiswal нет, пока единственным решением является не использовать угловой материал: D, но это мой проект для портфолио, поэтому мне нужно будет найти решение, и когда я это сделаю, я дам вам знать. Пока я подозреваю, что моя проблема связана с последней ошибкой, которую я достиг, переустановив угловой материал, но предложенное решение --legacy-peer-deps и другие решения, которые я нашел до сих пор в stackoverflow, не помогли. По крайней мере, это была другая ошибка :D

Ilze 01.12.2022 13:03

Я столкнулся с этой ошибкой для нескольких библиотек, которые были решены после установки каждой зависимости по одной, например, npm install @angular/router14 --save --legacy-peer-deps, но одна ошибка, которую я не могу преодолеть для ng-cirlce-progress

Shilpi Jaiswal 01.12.2022 14:53

У меня точно такая же проблема, и она началась, казалось бы, случайно, без изменения каких-либо зависимостей от конвейера сборки. Я использую Angular 14.1.0, то же самое с материалом, то же самое с CDK. Я вижу, что это проявляется как: Ошибка: node_modules/ng2-charts/lib/base-chart.directive.d.ts:40:18 - ошибка TS2707: универсальный тип 'ɵɵDirectiveDeclaration' требует от 6 до 8 аргументов типа. 40 static ɵdir: i0.ɵɵDirectiveDeclaration<BaseChartDirective<любой, любой, любой>, "canvas[baseChart]",

Karl Brown 05.12.2022 02:23

@KarlBrown, как показано ниже, для меня было решением только обновление до angular 15.

Ilze 07.12.2022 01:10

У меня были эти проблемы, но я запускал ng build --watch. Как только я убил часы и перезапустил, ошибки исчезли. Я также использовал npm i @angular/cdk@14, так как я использую Angular 14. HTH.

jessewolfe 20.12.2022 07:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
6
7 759
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Я нашел ВРЕМЕННОЕ решение, у меня была такая же ошибка, и я зашел внутрь node_modules и прокомментировал строки ошибок.

В моем случае это был один комментарий в node_modules/@angular/cdk/bidi/index.d.ts и еще пара в node_modules/@angular/cdk/scrolling/index.d.ts, хотя я не знаю, что вызвало эту ошибку, и я не знаю, вызовет ли комментирование этих строк проблемы в будущем, необходимо изучить это подробнее.

Ответ принят как подходящий

Была такая же проблема. Используйте ngrx/component 14.3.2, если вы используете Angular 14. Или обновите напрямую до Angular 15.

Большое спасибо. Для справки - в моем случае работало только обновление до angular 15. Мои шаги - я попробовал первый вариант -> npm i @ngrx/[email protected] Не сработало. Затем, чтобы использовать angular 15, мне понадобился node js версии 16.13 -> nvm install 16.13 и typescript версии 4.8 -> изменить package.json "typescript": "4.8" и запустить npm install. Затем осталось ng update @angular/core@15 @angular/cli@15 и ng update @angular/material@15, потому что у меня уже был установлен материал angular. Кажется, что у datepicker есть некоторые проблемы с появлением, но пока другие компоненты работают.

Ilze 07.12.2022 01:12

Отлично, что это работает для вас. @ngrx/[email protected] у вас не работает, потому что вы используете cdk & material версии 15.

dev4678 07.12.2022 13:50

У меня возникла проблема с OP, и я установил v14.3.2 ngrx/component, как указано выше. Не устранил проблему. Хорошая новость — я запускал ng build --watch. Как только я перезапустил это, он построился без каких-либо проблем! Я не думаю, что ng build --watch должен был пережить новые установки npm.

jessewolfe 20.12.2022 07:53

Я также столкнулся с точной проблемой, я просто сначала обновляю свой NodeJS (с 16 до 18 с официального сайта NodeJS), позже мне также нужно обновить ядро ​​angular cli/angular с версии 14 до 15. команда: -ng update @angular/cli @angular/core --allow-dirty --force Мне нужно поставить --allow-dirty --force, потому что я получаю эту ошибку: - Ошибка: Репозиторий не чист. Пожалуйста, зафиксируйте или спрячьте любые изменения перед обновлением. и мое приложение снова начинает работать ожидаемо.

После всего, моя проблема была решена, и мое приложение снова начало работать ожидаемо.

Спасибо, к счастью, я уже обновился до angular 15 и сделал шаги, указанные ниже, поэтому я не могу попробовать ваш вариант, но он может быть очень полезен для кого-то!

Ilze 13.12.2022 13:09

В моем случае это решилось применением этой команды:

ng update @angular/cli @angular/core --allow-dirty --force

Затем удалите символ «~» из стилей, если он есть:

Заменить @import "~@coreui/coreui-pro/scss/coreui" с @import "@coreui/coreui-pro/scss/coreui"

У меня была такая же ошибка после запуска, ng update @angular/core@14 @angular/cl1@14. Некоторые другие пакеты были обновлены до v15.04 в моем pacakge.json. Я предполагаю, что это все зависимости, которые я должен был связать с командой ng update, чтобы они все равномерно обновлялись до версии 14. Решение состояло в том, чтобы просто понизить версии всех пакетов, которые были в v15, до v14-lst.

Я думаю, что из-за того, что мои @angular/compiler и @angular/compiler-cli были обновлены до v15, это вызвало ошибку компиляции при запуске ng serve

Обновлять:

Столкнулся с этим снова после настройки всех моих линтеров. Я не думаю, что вы хотите анализировать или проверять модули узла сборки, если вам это действительно не нужно. Наличие модулей узла проверки машинописного текста важно, особенно если вы не хотите, чтобы разные пакеты или разные копии одного и того же пакета имели конфликтующие объявления типов. Чтобы решить эту проблему, в параметрах компилятора в вашем tsconfig.json добавьте skipLibCheck: true

tsconfig.json

{
    ...
    complilerOptions: {
        ...
        skipLibCheck: true
    }
}

Вот официальные документы на skipLibCheck

это работает очень хорошо.

Rouhollah Torshizi 16.01.2023 12:15

Это проблема совместимости. Если вы установили какой-либо новый пакет, проверьте его Github и его зависимости.

Я установил ng-bootstrap @ 14, и для него требовался angular версии 15, но мой проект — angular 14, поэтому мне пришлось понизить пакет до 13, чтобы решить эту проблему.

Я также столкнулся с той же проблемой,

**error ts2707: generic type 'ɵɵdirectivedeclaration' requires between 6 and 8 type arguments.**

но не волнуйтесь, решить эту проблему довольно просто: -

вам нужно просто обновить angular с версии 14 до 15.

следующая команда

команда: -

ng update @angular/cli @angular/core --allow-dirty --force

тогда ваше приложение будет работать так, как вы ожидаете!

Удачи!

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