angular-ui-router/angular-ui-router.d.ts
في هذا الريبو وكان لدي مشاكل.لا يعمل جهاز التوجيه الزاوي عند استخدام @ types / angular-ui-router.
"Module 'angular' has no exported member 'ui'"
كل ملف الآن باللون الأحمر ، ولن يتم تجميعه
يبدو أن وجود <reference types="angular" />
بجانب import * as angular from 'angular';
لن ينجح
نفس الشيء يحدث مع angular-ui-bootstrap
الوحدات التي تعتمد على @types/angular
معطلة تمامًا. أنا لا أستخدم المتغير العام الزاوي وعندما أقوم باستخدام import * as angular from 'angular'
فحاول الوصول إلى مساحة اسم الوحدة ، مثل angular.ui.bootstrap
، angular.translate
، angular.ui
، هم كلها تعطي الخطأ Module 'angular' has no exported member 'ui'
الكود أدناه فشل:
'use strict';
import * as angular from 'angular';
class Config {
static $inject = ['$stateProvider', '$urlRouterProvider'];
constructor($stateProvider: angular.ui.IStateProvider, $urlProvider: angular.ui.IUrlRouterProvider) {
/*...*/
}
}
angular.module('Module', []).config(Config);
يجب إصلاح ذلك من خلال https://github.com/DefinitelyTyped/DefinitelyTyped/pull/10170
يمكنك إما استخدامه كوحدة نمطية:
import * as angular from 'angular';
import "angular-ui-router";
class Config {
static $inject = ['$stateProvider', '$urlRouterProvider'];
constructor($stateProvider: angular.ui.IStateProvider, $urlProvider: angular.ui.IUrlRouterProvider) {
/*...*/
}
}
angular.module('Module', []).config(Config);
أو كعالمية ولكن استخدم /// <reference types=... />
/// <reference types="angular" />
/// <reference types="angular-ui-router" />
class Config {
static $inject = ['$stateProvider', '$urlRouterProvider'];
constructor($stateProvider: angular.ui.IStateProvider, $urlProvider: angular.ui.IUrlRouterProvider) {
/*...*/
}
}
angular.module('Module', []).config(Config);
mhegazy هل هذا هو السلوك الجديد لـ 2.0+ عند استخدام @types
؟ لا يمكن أن يكون لديك جلوبال "حقيقي" التي تقوم بتضمينها مرة واحدة وهي متوفرة في كل مكان؟
@types/angular-ui-router
و @types/angular-ui-bootstrap
معطلين بالمناسبة
mhegazy هل هذا هو السلوك الجديد لـ 2.0+ عند استخدامtypes؟ لا يمكن أن يكون لديك جلوبال "حقيقي" التي تقوم بتضمينها مرة واحدة وهي متوفرة في كل مكان؟
تستطيع. /// <reference types="angular" />
يجب أن يجعل ng
متاحًا في مجموعتك.
@ type / angular-ui-router و @ types / angular-ui-bootstrap لا تزال معطلة بالمناسبة
الأحدث في https://github.com/DefinitelyTyped/DefinitelyTyped/tree/types-2.0 يبدو مناسبًا لي. هل يمكنك الإشارة إلى ما لا يصلح لك؟
كيف تقوم باستيراد الزاوي؟
أنا أستخدم import * as angular from 'angular'
. عندما أحاول استخدام angular.ui.IStateProvider
(من angular-ui-router
) ، فإنه لا يوجد في الزاوية. حتى إذا قمت بإضافة جهاز التوجيه الزاوي ui في ملف آخر (الوحدة النمطية الأساسية الخاصة بي) ، فأنا الآن بحاجة إلى تضمينه في كل ملف؟
تحتاج إلى استيراد ذلك أيضًا. import "angular-ui-router";
أو أضف مرجع أنواع إليه /// <reference types="angular-ui-router" />
يرجى إجراء تبديل في tsconfig.json يجعله يتصرف بالطريقة القديمة ، ولا يمكنني إعادة صياغة مشروعي في هذه اللحظة بالذات :(
يرجى إجراء تبديل في tsconfig.json يجعله يتصرف بالطريقة القديمة
ما هي الطريقة "القديمة"؟
إذا كنت تستخدم ملفات التصريح التي حصلت عليها من الكتابة أو tsd ، فيجب أن تعمل بدون تغيير. هذا فقط لحزم @types
على npm. إذا كنت لا ترغب في استخدامها في الوقت الحالي ، فلا داعي لذلك.
أنا أيضا أواجه نفس المشكلة.
نفس المشكلة ... فقط تثبيت @ types / angular
زاوية مستوردة في ملف مطبوع:
استيراد * كزاوية من "زاوية" ؛
ومع ذلك ، فإن مساحة اسم واجهة المستخدم غير متاحة في ng.
الحصول على:
الوحدة النمطية "angular" لا تحتوي على "ui" عضو مُصدر.
لماذا هذا مغلق؟ هل هذا يعني أنه لن يتم إصلاحه أبدًا ، أم أن هناك مشكلة أخرى له؟ (لا يزال محطمًا بالنسبة لي)
لا يزال محطمًا بالنسبة لي أيضًا
ولا يزال
asadsahi هذا لأن @types/angular
لا يحتوي في الواقع على ui
عضو. يتم تعريف هذا العضو بواسطة @types/angular-ui-router
.
والتي يجب تركيبها منفصلة:
npm i -D @types/angular-ui-router
أي شخص وجد حلا حتى الآن؟
mhegazy هل يمكنك إعادة فتح التذكرة؟
لقد حصلت للتو على هذه المشكلة عند محاولة ترقية جهاز التوجيه الزاوي من 1.0.0-beta.1 إلى 1.0.0-rc.1. أريد أيضًا ترقية TS ، والتخلص من الكتابة لصالحtypes ... كل هذا حصلت عليه في تطبيق angular1 الذي أنشأته yeoman-fountain. يغضبني لأنني أضيع وقتي :(
mhegazy هل يمكنك إعادة فتح التذكرة؟
وما زالت هذه المسألة. الحل الخاص بي في الوقت الحالي:
"fix-duplicate-dts": "rimraf node_modules/@types/oclazyload/node_modules/@types/angular && rimraf node_modules/@types/angular-ui-bootstrap/node_modules/@types/angular && rimraf node_modules/@types/ngtoaster/node_modules/@types/angular && rimraf node_modules/@types/angular-translate/node_modules/@types/angular && rimraf node_modules/@types/angular-mocks/node_modules/@types/angular && rimraf node_modules/@types/angular-gridster/node_modules/@types/angular && rimraf node_modules/@types/angular-storage/node_modules/@types/angular && rimraf node_modules/@types/ui-select/node_modules/@types/angular",
"postinstall": "npm run fix-duplicate-dts",
"postuninstall": "npm run fix-duplicate-dts"
في بعض الأحيان ، يتعين عليّ فقط تشغيل المهمة يدويًا ، ولكن في معظم الأحيان يتم ذلك باستخدام البرنامج النصي لما بعد التثبيت.
كان لدي نفس الخطأ Module 'angular' has no exported member 'xxx'.
بعد أن قمت بترقية التبعية إلى @types/[email protected]
.
في حالتي كان مرتبطًا بالعديد من تعريفات النوع الزاوي في وحدات node_modules الخاصة بي. تم تعريف الأنواع الزاويّة في node_modules/@types/angular
و node_modules/@types/ng-file-upload/node_modules/@types/angular
.
كان هذا بسبب حقيقة أن الغزل حل الزاوي بإصدارات مختلفة. كان لدي إدخالان للزاوية بدقة مختلفة في ملف yarn.lock:
"@types/angular@*":
version "1.6.7"
resolved "https://registry.yarnpkg.com/@types/angular/-/angular-1.6.7.tgz#8935a2b4a796fe7ca4f59f533f467804722fb0c4"
dependencies:
"@types/jquery" "*"
"@types/[email protected]":
version "1.6.32"
resolved "https://registry.yarnpkg.com/@types/angular/-/angular-1.6.32.tgz#fc791aad038227d9413eb5e552993e1076f8a509"
"@types/ng-file-upload@^11.1.31":
version "11.1.34"
resolved "https://registry.yarnpkg.com/@types/ng-file-upload/-/ng-file-upload-11.1.34.tgz#670fd0515c8e08668b27b7bbe30356b3b8011780"
dependencies:
"@types/angular" "*"
أدت إزالة yarn.lock وإعادة تشغيل تثبيت الغزل إلى حل المشكلة ولكنها عدلت الكثير من التبعية الأخرى في حالتي.
من المحتمل أن يؤدي استخدام تثبيت الغزل - مسطح إلى حل المشكلة ولكني لم أرغب في تغيير كيفية حل جميع التبعيات.
لذلك أصلحت المشكلة عن طريق تغيير ملف yarn.lock يدويًا إلى
"@types/angular@*", "@types/[email protected]":
version "1.6.32"
resolved "https://registry.yarnpkg.com/@types/angular/-/angular-1.6.32.tgz#fc791aad038227d9413eb5e552993e1076f8a509"
"@types/ng-file-upload@^11.1.31":
version "11.1.34"
resolved "https://registry.yarnpkg.com/@types/ng-file-upload/-/ng-file-upload-11.1.34.tgz#670fd0515c8e08668b27b7bbe30356b3b8011780"
dependencies:
"@types/angular" "*"
التعليق الأكثر فائدة
نفس المشكلة ... فقط تثبيت @ types / angular
زاوية مستوردة في ملف مطبوع:
استيراد * كزاوية من "زاوية" ؛
ومع ذلك ، فإن مساحة اسم واجهة المستخدم غير متاحة في ng.
الحصول على:
الوحدة النمطية "angular" لا تحتوي على "ui" عضو مُصدر.