कोणीय और टाइपस्क्रिप्ट: नाम नहीं खोज सकते


221

मैं टाइपस्क्रिप्ट (संस्करण 1.6) के साथ कोणीय (संस्करण 2) का उपयोग कर रहा हूं और जब मैं कोड संकलित करता हूं तो मुझे ये त्रुटियां मिलती हैं:

Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/change_detection/parser/locals.d.ts(4,42): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/facade/collection.d.ts(1,25): Error TS2304: Cannot find name 'MapConstructor'.
    node_modules/angular2/src/core/facade/collection.d.ts(2,25): Error TS2304: Cannot find name 'SetConstructor'.
    node_modules/angular2/src/core/facade/collection.d.ts(4,27): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/facade/collection.d.ts(4,39): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/facade/collection.d.ts(7,9): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/facade/collection.d.ts(8,30): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/facade/collection.d.ts(11,43): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/facade/collection.d.ts(12,27): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/facade/collection.d.ts(14,23): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/facade/collection.d.ts(15,25): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/facade/collection.d.ts(94,41): Error TS2304: Cannot find name 'Set'.
    node_modules/angular2/src/core/facade/collection.d.ts(95,22): Error TS2304: Cannot find name 'Set'.
    node_modules/angular2/src/core/facade/collection.d.ts(96,25): Error TS2304: Cannot find name 'Set'.
    node_modules/angular2/src/core/facade/lang.d.ts(1,22): Error TS2304: Cannot find name 'BrowserNodeGlobal'.
    node_modules/angular2/src/core/facade/lang.d.ts(33,59): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/facade/promise.d.ts(1,10): Error TS2304: Cannot find name 'Promise'.
    node_modules/angular2/src/core/facade/promise.d.ts(3,14): Error TS2304: Cannot find name 'Promise'.
    node_modules/angular2/src/core/facade/promise.d.ts(8,32): Error TS2304: Cannot find name 'Promise'.
    node_modules/angular2/src/core/facade/promise.d.ts(9,38): Error TS2304: Cannot find name 'Promise'.
    node_modules/angular2/src/core/facade/promise.d.ts(10,35): Error TS2304: Cannot find name 'Promise'.
    node_modules/angular2/src/core/facade/promise.d.ts(10,93): Error TS2304: Cannot find name 'Promise'.
    node_modules/angular2/src/core/facade/promise.d.ts(11,34): Error TS2304: Cannot find name 'Promise'.
    node_modules/angular2/src/core/facade/promise.d.ts(12,32): Error TS2304: Cannot find name 'Promise'.
    node_modules/angular2/src/core/facade/promise.d.ts(12,149): Error TS2304: Cannot find name 'Promise'.
    node_modules/angular2/src/core/facade/promise.d.ts(13,43): Error TS2304: Cannot find name 'Promise'.
    node_modules/angular2/src/core/linker/element_injector.d.ts(72,32): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/element_injector.d.ts(74,17): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/element_injector.d.ts(78,184): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/element_injector.d.ts(83,182): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/element_injector.d.ts(107,37): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/proto_view_factory.d.ts(27,146): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/view.d.ts(52,144): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/view.d.ts(76,79): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/view.d.ts(77,73): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/view.d.ts(94,31): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/view.d.ts(97,18): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/view.d.ts(100,24): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/view.d.ts(103,142): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/linker/view.d.ts(104,160): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/render/api.d.ts(281,74): Error TS2304: Cannot find name 'Map'.
    node_modules/angular2/src/core/zone/ng_zone.d.ts(1,37): Error TS2304: Cannot find name 'Zone'.

यह कोड है:

import 'reflect-metadata';
import {bootstrap, Component, CORE_DIRECTIVES, FORM_DIRECTIVES} from 'angular2/core';
@Component({
  selector: 'my-app',
  template: '<input type="text" [(ng-model)]="title" /><h1>{{title}}</h1>',
  directives: [ CORE_DIRECTIVES ]
})
class AppComponent {
  title :string;

  constructor() {
    this.title = 'hello angular 2';
  }
}
bootstrap(AppComponent);

ऐसा लगता है कि यहाँ के लिए एक मुद्दा है github.com/angular/angular/issues/4902
लूटना

निम्नलिखित आयात को जोड़ने की कोशिश कर import {ROUTER_PROVIDERS} from 'angular2/router';रहा हूँ मैं एक ही समस्या हो रही है और किसी कारण से यह मेरे लिए इसे ठीक करता है ...?
लूट

जवाबों:


52

एक ज्ञात मुद्दा: https://github.com/angular/angular/issues/4902

मुख्य कारण: .d.tsटाइपस्क्रिप्ट द्वारा शामिल की गई फ़ाइल संकलित लक्ष्य के साथ भिन्न होती है, इसलिए किसी को लक्ष्य बनाते समय अधिक परिवेशी घोषणाएँ करने की आवश्यकता होती है, es5भले ही चीजें वास्तव में रनटाइम्स (जैसे क्रोम) में मौजूद हों। अधिकlib.d.ts


446
तो समाधान क्या है?
user233232

3
2.0.0-Alpha.45 अच्छा है, नोड_मॉडल / कोणीय 2 / बंडलों / टाइपिंग / ** * * से टाइपिंग का उपयोग करें। d.ts
क्या बटवू

2
"angular2": "2.0.0-beta.3" काम करता है, लेकिन Beta.4 और Beta.5 को यह मुद्दा फिर से लगता है, कम से कम जब आपके प्रोजेक्ट को ट्यूटोरियल में
CorayThan

3
@Roj मैं अभी भी बीटा 6 में यह देख रहा हूँ, लेकिन जब browser.d.ts के संदर्भ का उपयोग करते हुए यह काम करता है
inki

3
हुर्रे! rc1 इसमें शामिल हुआ।
रॉनिनकोडर

105

2.0.0-beta.6 (2016-02-11) के लिए चैंज में वर्णित एक काम-के आसपास है (ब्रेकिंग परिवर्तन के तहत सूचीबद्ध):

यदि आप --target = es5 का उपयोग करते हैं, तो आपको अपने आवेदन में कहीं न कहीं एक पंक्ति जोड़नी होगी (उदाहरण के लिए, .ts फ़ाइल के शीर्ष पर जहाँ आप बूटस्ट्रैप कहते हैं)।

///<reference path="node_modules/angular2/typings/browser.d.ts"/>

(ध्यान दें कि यदि आपकी फ़ाइल नोड_मॉड्यूल्स के समान निर्देशिका में नहीं है, तो आपको उस पथ के प्रारंभ में एक या अधिक ../ जोड़ना होगा।)

सुनिश्चित करें कि आपके पास सही संदर्भ पथ है, मुझे इस कार्य को प्राप्त करने के लिए शुरुआत में ../ को जोड़ना होगा ।


3
इसने मेरे लिए बहुत सारी त्रुटियां तय कीं, लेकिन मुझे अभी भी त्रुटियां पसंद हैं TS2304: Cannot find name 'module'और TS2339: Property 'find' does not exist on type 'MyThing[]'.... कोई विचार?
mwijnands

1
यदि आप पुन: उपयोग के लिए पैकेज में कोणीय का उपयोग करते हैं तो क्या होगा? मैं इस संदर्भ के साथ एक फ़ाइल के साथ एक पैकेज का उपयोग करने की कोशिश करता हूं जो भी एप्लिकेशन tsc बिल्ड समय पर शिकायत करता है कि वह इस संदर्भ को नहीं ढूंढ सकता है।
हंस

5
क्या एंगुलर में नई पैकेज संरचना के लिए कोई समाधान है, मैं नए @angular / .... संरचना में एक browser.d.ts नहीं ढूँढ सकता
I.

2
@ Idevries सही है, उन्होंने browser.d.ts को हटा दिया है। फ़ाइलें अब index.d.ts हैं, और आपको प्रत्येक कोणीय घटक के लिए एक की आवश्यकता है, क्योंकि प्रत्येक को अब अलग से rc.0 और बाद में स्थापित किया गया है। आपको "टाइपिंग" भी स्थापित करने की आवश्यकता है - खालिद अल-अंसारी द्वारा दिए गए उत्तर और -उदरसाइड ऊपर।
वर्न जेन्सेन

1
मैंने इसे जोड़कर हल किया: /// <संदर्भ पथ = "../ टाइपिंग / index.d.ts" />
Sako73

80

ES5 को लक्षित करते समय वादों की तरह ES6 सुविधाओं को परिभाषित नहीं किया जाता है। अन्य पुस्तकालय हैं, लेकिन कोर-जेएस जावास्क्रिप्ट पुस्तकालय है जिसका उपयोग कोणीय टीम करती है। इसमें ES6 के लिए पॉलीफिल्स होते हैं।

यह प्रश्न पूछे जाने के बाद से कोणीय 2 बहुत बदल गया है। टाइपस्क्रिप्ट 2.0 में उपयोग करने के लिए टाइप घोषणाएं बहुत आसान हैं ।

npm install -g typescript

कोणीय 2 में ES6 सुविधाओं के लिए, आपको टाइपिंग की आवश्यकता नहीं है। बस टाइपस्क्रिप्ट 2.0 या उच्चतर का उपयोग करें और npm के साथ @ प्रकार / कोर-जेएस स्थापित करें:

npm install --save-dev @types/core-js

उसके बाद, टाइप करें और टाइप करें विशेषताएँ अपने tsconfig.json में जोड़ें:

{
  "compilerOptions": {
    "target": "es5",
    "module": "es6",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "typeRoots": [
      "../node_modules/@types"
    ],
    "types" : [
      "core-js"
    ]
  },
  "exclude": [
    "node_modules"
  ]
}

यह टाइपिंग का उपयोग करने की तुलना में बहुत आसान है, जैसा कि अन्य उत्तरों में बताया गया है। अधिक जानकारी के लिए Microsoft का ब्लॉग पोस्ट देखें: टाइपस्क्रिप्ट: घोषणा फाइलों का भविष्य


1
मुझे लगता है कि "प्रकार" सरणी भी "संकलनकर्ता" ऑब्जेक्ट में है। लेकिन इसके अलावा, बहुत बहुत धन्यवाद, मैं पूरे दिन इस कोहरे से जूझ रहा था।
प्लेक्सस

@plexus धन्यवाद! आप संकलक के बारे में सही हैं। मैंने जवाब तय किया।
डेविड रिंक

महान पोस्ट के लिए धन्यवाद, लेकिन आपके द्वारा प्रदान किए गए URL के अनुसार tsconfig.json को बढ़ाना भी आवश्यक नहीं है, यह वास्तव में वैसे भी काम करता है :) कम से कम मेरे लिए यह किया। तो केवल एक चीज जो आपको करने की ज़रूरत है वह आवश्यक पैकेज स्थापित करने के लिए है
इल्या चेर्नोमोर्डिक

typeRootsयदि आपके पास एकमात्र प्रविष्टि है, तो आप हटा भी सकते हैं node_modules/@types
मॉर्गन टोवरे क्विंग

जादू की तरह। जैसा कि @ ilya-chernomordik ने उल्लेख किया था, इसने मेरे लिए TypeRootsऔर Typestsconfig .json को शामिल किए बिना भी काम किया । मेरे मामले में मुझे अपने गुलप-टाइप-टाइपस्क्रिप्ट 2.x प्लगइन को भी अपडेट करना था जो टाइपस्क्रिप्ट 1 के उपयोग और एम्बेडेड संस्करण को ट्रांसपाइल कर रहा था, लेकिन एक बार मैंने अपडेट किया तो मैं टाइपस्क्रिप्ट 2 का उपयोग कर रहा था और मैंने @ टाइप / कोर-जेएस पॉलीइल जोड़ा। सेट। बहुत धन्यवाद।
rscarter

49

Angular2 ट्यूटोरियल का अनुसरण करने वालों के लिए angular.ioकेवल स्पष्ट होने के लिए लिए, यहाँ mvdluit के जवाब का एक विस्तार है जहां कोड डालना है:

आपको main.tsइस तरह दिखना चाहिए:

/// <reference path="../node_modules/angular2/typings/browser.d.ts" />

import {bootstrap} from 'angular2/platform/browser'
import {AppComponent} from './app.component'
// Add all operators to Observable
import 'rxjs/Rx'

bootstrap(AppComponent);

ध्यान दें कि आप ///आगे की स्लैश में छोड़ देते हैं , उन्हें न निकालें।

रेफरी: https://github.com/ericmdantas/angular2-typescript-todo/blob/master/index.ts#L1


मैं VS2015 MVC6 और Angular2 Beta.14 का उपयोग करता हूं, यदि आप संदर्भ पंक्ति को _references.jsइसमें रखते हैं तो यह काम नहीं करेगा। घटक के अंदर होना चाहिए जैसे यह उत्तर बताता है। इसके अतिरिक्त, पथ के ../../बजाय का उपयोग करें ../
रॉनिनकोडर

@ हनी आपको अभी तक इसके आसपास का रास्ता नहीं मिला? मैं RC1 के लिए उन्नयन कोशिश करते हैं और इसे बाहर की कोशिश करेंगे
Rots

तो टाइपिंग छूट गई। मुझे लगता है कि आपको अलग से इंस्टॉल करने की आवश्यकता होगी और जब मैं करता हूं, तो मुझे बहुत सारे बेकार पैकेज भी मिलते हैं। किसी भी तरह, वह सब करने के बाद भी, browser.d.tsटाइपिंग फ़ोल्डर के तहत और अधिक नहीं है । के .jsतहत बस फाइलें dist। एक फाइल है जिसका नाम typings.d.tsमुझे लगा कि यह नया है, लेकिन इसने इस मुद्दे को हल नहीं किया। 'Es6' कार्यों के लिए बिल्डिंग, लेकिन IE शिकायत करता है। तो 'es5' निर्माण और कोई टाइपिंग के साथ अटक गया! : /
RoninCoder 14

@ हनी एक नया जवाब है। शायद यह काम करेगा? npm install -g typings typings install
Rots

डाउनग्रेड करने के लिए Beta.15 और .d.tsटाइपिंग पैकेज से समान का उपयोग किया । IE9 + आवश्यकता को पूरा करने के लिए, es3 के लिए निर्माण करना था।
RoninCoder

48

मैं निम्नलिखित आदेश के साथ इसे ठीक करने में सक्षम था

typings install es6-promise es6-collections --ambient

ध्यान दें कि आपको typingsउपरोक्त कमांड काम करने की आवश्यकता है, अगर आपके पास इसे स्थापित करने के लिए निम्न कमांड नहीं है

npm install -g typings

अपडेट करें

टाइपिंग अपडेट यह नहीं पढ़ता है --ambientयह --globalकुछ लोगों के लिए भी बन गया है जिन्हें आपको उपरोक्त पुस्तकालयों की परिभाषाएं स्थापित करने की आवश्यकता है, बस निम्नलिखित कमांड का उपयोग करें

typings install dt~es6-promise dt~es6-collections --global --save

इसे इंगित करने के लिए @bgerth को धन्यवाद ।


9
मेरे लिए यह थाtypings install dt~es6-promise dt~es6-collections --global --save
बर्थ

1
@ मुझे लगता है कि यह typingsअद्यतन के कारण बदल गया है , मैं आपके समाधान का जवाब जोड़ दूंगा
खालिद अल-अंसारी

टाइपिंग स्थापित dt ~ es6-वादा dt ~ es6- संग्रह --global --save मेरे लिए काम किया। यह समस्या पुनरावर्ती और रुक-रुक कर है ... इस सुधार के लिए thx को उम्मीद है कि यह एक दिन से अधिक समय तक काम करता है।
सैम

टाइपिंग स्थापित dt ~ es6-वादा dt ~ es6-collection --global --save मेरे लिए भी काम किया
Rikku121

33

टाइपस्क्रिप्ट> = 2 होने पर tsconfig.json में "lib" विकल्प काम करेगा। टाइपिंग की कोई जरूरत नहीं।https://www.typescriptlang.org/docs/handbook/compiler-options.html

{
    "compilerOptions": {
        "target": "es5",
        "lib": ["es2016", "dom"] //or es6 instead of es2016(es7)
    }
}

Yup ... "lib" जोड़ना: ["es2016", "dom"] को मेरी tsconfig.json फ़ाइल ने इसे ठीक कर दिया
Marvel Moe

यह सही है। बस सावधानी बरतें क्योंकि इसमें घोषित किए गए कुछ प्रकार मौजूद नहीं हो सकते हैं
एलुआन हदद

@ नील्स स्टीनबीक के पास यहीं है। मुझे कोणीय 2 और 4 पाठ्यक्रमों के लिए अभ्यास करने में समान त्रुटियों का सामना करना पड़ा। हालाँकि, मेरी कामेच्छा की सामग्री जहाँ कुछ भिन्न है: "लीबी": ["es2015", "es2015.iterable", "dom"]
BoiseBaked

15

Angular 2.0.0-rc.0जोड़ने के लिए node_modules/angular2/typings/browser.d.tsकाम नहीं करेगा। इस सामग्री के साथ सबसे पहले अपने समाधान में टाइपिंग.जॉसन फ़ाइल जोड़ें :

{
    "ambientDependencies": {
        "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd"
    }
}

और फिर package.jsonइसे शामिल करने के लिए फ़ाइल को अपडेट करें postinstall:

"scripts": {
    "postinstall": "typings install"
},

अब दौड़ो npm install

अब भी आपको typingsअपनी tsconfig.jsonफ़ाइल में फ़ोल्डर को अनदेखा करना चाहिए :

 "exclude": [
        "node_modules",
        "typings/main",
        "typings/main.d.ts"
    ]

अपडेट करें

अब AngularJS 2.0 के core-jsबजाय का उपयोग कर रहा है es6-shim। अधिक जानकारी के लिए इसकी क्विक स्टार्ट टाइपिंगJson फाइल को फॉलो करें ।


वहाँ में इस त्रुटि के साथ एक मुद्दा है rc0 github.com/angular/angular/issues/4902#issuecomment-216495769
ssuperczynski

15

आप .ts फ़ाइलों की शुरुआत में कोड जोड़ सकते हैं।

/// <reference path="../typings/index.d.ts" />

इसने मेरे लिए काम किया। विश्व स्तर पर टाइपिंग स्थापित करने की आवश्यकता नहीं है। स्थिर कोण पर की कोशिश की 2.
गोपीनाथ शिव

मेरे लिए भी काम किया,
अंगुली

10

मुझे यह कोणीय 2 आरसी 1 पर मिल रहा था। टाइपिंग के साथ बदले गए कुछ नामों को बदल देता है v1 बनाम पुराने 0.x। browser.d.tsफ़ाइलों बन गया index.d.ts

चलाने के बाद typings installअपनी स्टार्टअप फ़ाइल (जहां आप बूटस्ट्रैप हैं) का पता लगाएं और जोड़ें:

/// <reference path="../typings/index.d.ts" />(या बिना ../अगर आपकी स्टार्टअप फ़ाइल टाइपिंग फ़ोल्डर के समान फ़ोल्डर में है)

index.d.tsफ़ाइलों की सूची में जोड़नाtsconfig.json किसी कारण से काम नहीं किया।

इसके अलावा, es6-shimपैकेज की जरूरत नहीं थी।


7

मैं typingsमॉड्यूल को स्थापित करके इसे ठीक करने में सक्षम था ।

npm install -g typings
typings install

(एनजी 2.0.0-आरसी 1 का उपयोग करके)


1
"" typyings.json 'गायब है। - (कोई निर्भरता नहीं) "। जब मैं app.ts फ़ाइल के समान फ़ोल्डर में कमांड चलाता हूं तो यह त्रुटि देता है। मुझे यह टाइपिंग कहाँ मिलनी चाहिए। फ़ाइल को टाइप करें , और मुझे कमांड कब चलाना चाहिए?
यूलिसिस

7

मुझे भी यही समस्या थी और मैंने libविकल्प में इसका उपयोग करके इसे हल किया tsconfig.json। जैसा कि उनके जवाब में बेसरात ने कहा , एक .d.tsफ़ाइल संकलित targetविकल्प के आधार पर टाइपस्क्रिप्ट द्वारा सम्मिलित है, लेकिन इस व्यवहार को इसमें बदला जा सकता हैlib विकल्प के है।

आप लक्षित जेएस संस्करण को बदले बिना शामिल किए जाने के लिए अतिरिक्त परिभाषा फ़ाइलों को निर्दिष्ट कर सकते हैं। उदाहरणों के लिए यह compilerOptionsTypecript@2.1 के लिए मेरे वर्तमान का हिस्सा है और यह es2015बिना कुछ और इंस्टॉल किए सुविधाओं के लिए समर्थन जोड़ता है:

"compilerOptions": {
    "experimentalDecorators": true,
    "lib": ["es5", "dom", "es6", "dom.iterable", "scripthost"],
    "module": "commonjs",
    "moduleResolution": "node",
    "noLib": false,
    "target": "es5",
    "types": ["node"]
}

उपलब्ध विकल्पों की पूरी सूची के लिए आधिकारिक डॉक्टर की जाँच करें

ध्यान दें कि मैंने अपने कोड में समर्थन करने के लिए जोड़ा "types": ["node"]और स्थापित किया npm install @types/nodeथा require('some-module')


5
 typings install dt~es6-shim --save --global

और index.d.ts के लिए सही रास्ता जोड़ें

///<reference path="../typings/index.d.ts"/>

@ कोणीय-2.0.0-आरसी 3 पर कोशिश की


यह समाधान तब पूरी तरह से काम करता है जब हमें किसी लाइब्रेरी प्रोजेक्ट में .d.ts फ़ाइल की आवश्यकता होती है।
रॉबिन डिंग

4

यदि फिर npm install -g typings typings installभी मदद नहीं करता है, तो इस कमांड को निष्पादित करने से पहले नोड_मॉडल और टाइपिंग फ़ोल्डर हटा दें


4

यह वह है जो सोचता है कि हर कोई कुछ अलग करने की कोशिश कर रहा है। मेरा मानना ​​है कि ये प्रणालियाँ अभी भी अंतिम संस्करण से बहुत दूर हैं।

मेरे मामले में, मैंने rc.0 से rc.5 तक अपडेट किया। यह त्रुटि दिखाई दी।

मेरा तय tsconfig.json बदल गया था।

{
    "compilerOptions": {
        "target": "es6", <-- It was es5
        "module": "system",
        "moduleResolution": "node",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": false,
        "noImplicitAny": false,
        "outDir": "../wwwroot/app"
    },
    "compileOnSave": true,
    "exclude": [
        "../node_modules",
        "../typings/main"
    ]
}

1
इसने मेरे मुद्दों को भी हल कर दिया। आरसी संस्करण es6 को लक्षित कर रहे हैं ऐसा लगता है।
inari

अब आप ES5 को लक्षित नहीं कर रहे हैं। कुछ भी हो, बदलो "lib", नहीं "target"
अलुआन हदद

4

एप्लिकेशन के मुख्य फ़ोल्डर में टाइपिंग.d.dts जोड़ें और वहाँ पर उस परिवर्तनीय को घोषित करें जिसे आप हर बार उपयोग करना चाहते हैं

declare var System: any;
declare var require: any;

typing.d.ts में यह घोषित करने के बाद, आवश्यकता के लिए त्रुटि आवेदन में नहीं आएगी।


4

मैं कोणीय के लिए नया हूँ, लेकिन मेरे लिए समाधान केवल इनपुट आयात करके पाया गया था। इस एक के लिए क्रेडिट नहीं ले सकते, एक और बोर्ड पर पाया। यदि आपको समान समस्या हो रही है तो यह एक सामान्य सुधार है, लेकिन यदि आपके मुद्दे अधिक जटिल हैं, तो मैं ऊपर दिए गए सामान को पढ़ूंगा।

मुकेश :

आपको बाल घटक के शीर्ष पर इस तरह इनपुट आयात करना होगा

import { Directive, Component, OnInit, Input } from '@angular/core';

3

मुझे यह बहुत सहायक डॉक्टर लगा को Angular 2 की वेबसाइट पर मिला। इसने मुझे अंततः चीजों को ठीक से काम करने दिया, जबकि टाइपिंग को स्थापित करने के लिए अन्य उत्तर, मुझे विभिन्न त्रुटियों के साथ विफल कर दिया। (लेकिन मुझे सही दिशा में ले जाने में मदद की।)

Es6-वादा और es6- संग्रहों को शामिल करने के बजाय, इसमें कोर-जेएस शामिल हैं, जिसने मेरे लिए चाल चली ... Angular2 की कोर ts परिभाषाओं के साथ कोई टकराव नहीं हुआ। इसके अतिरिक्त दस्तावेज़ ने समझाया कि एनपीएम स्थापित करते समय स्वचालित रूप से होने के लिए यह सब कैसे सेट किया जाए, और अपनी टाइपिंग को कैसे बदलें। json फ़ाइल।


2

कोणीय 2 RC1 ने node_modules/angular2निर्देशिका का नाम बदल दिया node_modules/angular

यदि आप किसी आउटपुट निर्देशिका में फ़ाइलों की प्रतिलिपि बनाने के लिए एक gulpfile का उपयोग कर रहे हैं जो आपके पास अभी भी है node_modules/angular वहां बैठे हैं जो संकलक द्वारा उठाया जा सकता है और स्वयं को नरक से भ्रमित कर सकता है।

तो (ध्यान से) जो आपके पास है उसे मिटा दें node_modulesबीटा संस्करणों के लिए, और किसी भी पुराने टाइपिंग को हटा दें और फिर से चलाएं typings install


या वैकल्पिक रूप से ... 4 महीने के लिए अन्य सामान पर काम करें और स्क्रैच से खत्म होने के लिए अंतिम रिलीज की प्रतीक्षा करें (जो मैं कर रहा हूं)
सिमोन_वेअर

2

अच्छी कॉल, @ वाहिदएन, मैंने पाया कि मुझे जरूरत है

    "exclude": [
        "node_modules",
        "typings/main",
        "typings/main.d.ts"
    ]

अपने आप में tsconfig, त्रुटियों को es6-shimस्वयं से रोकने के लिए


2

नीचे दिए गए कथन को अपनी JS फ़ाइल में आयात करें।

import 'rxjs/add/operator/map';

मैं एक प्रोजेक्ट को नवीनतम संस्करण में अपग्रेड करना बंद कर रहा हूं, इसलिए import './rxjs-extensions';मेरे app.component.tsसाथ rxjs- एक्सटेंशन फ़ाइल को कोणीय 2 ट्यूटोरियल (आपकी सुझाई गई लाइन सहित) से जोड़ा गया है और ऐसा लगता है कि उन त्रुटियों को हटा दिया है।
जेम्स

क्या आप अधिक विशिष्ट हो सकते हैं। कौन सी JS फाइल? टाइपस्क्रिप्ट द्वारा संकलित मुख्य?
mm_

2

स्वीकृत उत्तर व्यवहार्य निर्धारण प्रदान नहीं करता है, और अधिकांश अन्य "ट्रिपल-स्लैश" वर्कअराउंड का सुझाव देते हैं जो अब व्यवहार्य नहीं है, क्योंकि browser.d.tsएंगुलर 2 नवीनतम आरसी द्वारा हटा दिया गया है और इस प्रकार अब उपलब्ध नहीं है।

मैं दृढ़ता से typingsमॉड्यूल को एक युगल समाधान द्वारा सुझाए अनुसार स्थापित करने का सुझाव देता हूं , फिर भी इसे मैन्युअल रूप से या विश्व स्तर पर करने के लिए आवश्यक नहीं है - ऐसा करने का एक प्रभावी तरीका है कि केवल आपकी परियोजना के लिए और वीएस2015 इंटरफ़ेस के भीतर। यहाँ आपको क्या करना है:

  • typingsप्रोजेक्ट के पैकेज में जोड़ें । json फ़ाइल।
  • निष्पादित / अद्यतन करने के लिए फ़ाइल scriptमें एक ब्लॉक जोड़ेंpackage.jsontypingsप्रत्येक एनपीएम कार्रवाई के बाद ।
  • typings.jsonपरियोजना के रूट फ़ोल्डर में एक फाइल जोड़ें जिसमें एक संदर्भ हो core-js(कुल मिलाकर es6-shimatm से बेहतर )।

बस।

आप इस अन्य SO थ्रेड पर भी नज़र डाल सकते हैं और / या अतिरिक्त विवरण के लिए मेरे ब्लॉग पर इस पोस्ट को पढ़ सकते हैं ।


2

मुझे अपनी देव शाखा को अपनी वर्तमान शाखा में विलय करने के बाद यह त्रुटि हो रही थी। मैंने समस्या को ठीक करने के लिए कुछ समय बिताया। जैसा कि आप नीचे दी गई छवि में देख सकते हैं, कोड में कोई समस्या नहीं है।

यहां छवि विवरण दर्ज करें

तो मेरे लिए एकमात्र फिक्स काम यह है कि VSCode को रीस्टार्ट करना


0

अब आपको उन्हें मैन्युअल रूप से आयात करना होगा।

import 'rxjs/add/operator/retry';
import 'rxjs/add/operator/timeout';
import 'rxjs/add/operator/delay';
import 'rxjs/add/operator/map';




this.http.post(url, JSON.stringify(json), {headers: headers, timeout: 1000})

         .retry(2)

         .timeout(10000, new Error('Time out.'))

         .delay(10)

         .map((res) => res.json())
        .subscribe(
          (data) => resolve(data.json()),
          (err) => reject(err)
        );

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.