Kątowy i maszynopis: nie można znaleźć nazw

221

Używam Angulara (wersja 2) z TypeScript (wersja 1.6) i kiedy kompiluję kod, dostaję następujące błędy:

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'.

To jest kod:

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);
użytkownik233232
źródło
wygląda na to, że jest z tym problem github.com/angular/angular/issues/4902
rob
Spróbuj dodać następujący import. import {ROUTER_PROVIDERS} from 'angular2/router';Otrzymuję ten sam problem iz jakiegoś powodu to rozwiązuje problem dla mnie ...?!?
rob

Odpowiedzi:

52

Znany problem: https://github.com/angular/angular/issues/4902

Główny powód: .d.tsplik domyślnie zawarty w TypeScript różni się w zależności od celu kompilacji, więc podczas celowania trzeba mieć więcej deklaracji otoczenia, es5nawet jeśli rzeczywiscie są obecne w środowiskach wykonawczych (np. Chrome). Więcej nalib.d.ts

basarat
źródło
446
Więc jakie jest rozwiązanie?
user233232
3
2.0.0-alpha.45 jest dobry, użyj pism z węzłów_modules / angular2 / bundles / typings / ** / *. D.ts
Czy Butuv
2
„angular2”: „2.0.0-beta.3” działa, ale wydaje się, że ten problem występuje ponownie w wersjach beta.4 i beta.5, przynajmniej podczas konfigurowania projektu jak w samouczku
CorayThan
3
@Roj Nadal widzę to w wersji beta 6, ale działa, gdy używa się odwołania do przeglądarki.d.ts
inki
3
Brawo! rc1 dołączył do tego.
RoninCoder
105

W dzienniku zmian dla wersji 2.0.0-beta.6 (2016-02-11) wymieniono obejście (wymienione w części „Przełomowe zmiany”):

Jeśli użyjesz opcji --target = es5, musisz dodać linię w aplikacji (na przykład u góry pliku .ts, w którym wywołujesz bootstrap):

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

(Pamiętaj, że jeśli twój plik nie znajduje się w tym samym katalogu, co moduły_węzła, musisz dodać jeden lub więcej ../ na początku tej ścieżki).

upewnij się, że masz prawidłową ścieżkę referencyjną, musiałem dodać ../ na początku, aby uzyskać to działające.

mvdluit
źródło
3
To naprawiło wiele błędów dla mnie, ale wciąż dostaję błędy jak TS2304: Cannot find name 'module'i TS2339: Property 'find' does not exist on type 'MyThing[]'.... Jakieś pomysły?
mwijnands
1
Co się stanie, jeśli użyjesz kątownika w pakiecie przeznaczonym do ponownego użycia? Każda aplikacja, którą próbuję użyć pakietu z plikiem z tym odniesieniem, narzeka w czasie kompilacji tsc, że nie może znaleźć tego odniesienia.
Hans
5
Czy istnieje rozwiązanie dla nowej struktury pakietu w Angular, nie mogę znaleźć przeglądarki.d.ts w nowej strukturze @angular / ....
I.devries
2
@ I.devries Prawidłowo, usunęli browser.d.ts. Pliki są teraz index.d.ts i potrzebujesz jednego dla każdego komponentu kątowego, ponieważ każdy jest teraz instalowany osobno w rc.0 i nowszych. Musisz także zainstalować „typowania” - patrz odpowiedzi Khaleda Al-Ansari i theUtherSide powyżej.
Vern Jensen
1
Rozwiązałem go, dodając: /// <ścieżka odniesienia = "../ typings / index.d.ts" />
Sako73,
80

Funkcje ES6, takie jak obietnice, nie są zdefiniowane podczas celowania w ES5. Istnieją inne biblioteki, ale core-js to biblioteka javascript, której używa zespół Angular. Zawiera wieloskładniki dla ES6.

Angular 2 bardzo się zmienił od czasu zadania tego pytania. Deklaracje typów są znacznie łatwiejsze w użyciu w Typescript 2.0.

npm install -g typescript

W przypadku funkcji ES6 w Angular 2 nie potrzebujesz Pisania. Wystarczy użyć pisma maszynowego 2.0 lub nowszego i zainstalować @ typy / core-js z npm:

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

Następnie dodaj atrybuty TypeRoots i Types do pliku 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"
  ]
}

Jest to o wiele łatwiejsze niż używanie Typów, jak wyjaśniono w innych odpowiedziach. Zobacz post na blogu Microsoftu, aby uzyskać więcej informacji: Typescript: The Future of Declaration Files

David Rinck
źródło
1
Myślę, że tablica „typów” również należy do obiektu „compilerOptions”. Ale poza tym, dziękuję bardzo, walczyłem z tym zdjęciem przez cały dzień.
splot
@plexus Thanks! Masz rację co do compilerOptions. Naprawiłem odpowiedź.
David Rinck
Dzięki za świetny post, ale zgodnie z podanym adresem URL nie jest nawet konieczne rozszerzenie tsconfig.json, to po prostu i tak działa :) Przynajmniej mi się udało. Jedyne, co musisz zrobić, to zainstalować wymagany pakiet
Ilya Chernomordik,
Możesz nawet usunąć, typeRootsjeśli masz tylko jeden wpis node_modules/@types.
Morgan Touverey Quilling
Jak urok. Jak wspomniałem @ ilya-chernomordik, działało to również dla mnie bez dodania TypeRootsi Typesdo tsconfig.json. W moim przypadku musiałem również zaktualizować moją wtyczkę Gulp gulp-typescript 2.x, która była transpilowana przy użyciu i osadzonej wersji TypeScript 1, ale kiedy zaktualizowałem, więc użyłem TypeScript 2 i dodałem polypypełkę @ types / core-js zestaw. Wielkie dzięki.
rscarter
49

Dla tych, którzy postępują zgodnie z samouczkiem Angular2, angular.ioaby być jawnym, oto rozszerzenie odpowiedzi mvdluit, gdzie dokładnie należy umieścić kod:

Twój main.tspowinien wyglądać tak:

/// <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);

Pamiętaj, że zostawiasz ///ukośniki, nie usuwaj ich.

ref: https://github.com/ericmdantas/angular2-typescript-todo/blob/master/index.ts#L1

Zgnilizna
źródło
Używam VS2015 MVC6 i Angular2 beta.14, jeśli umieścisz w _references.jsnim linię odniesienia, to nie będzie działać. Musi znajdować się wewnątrz komponentu, jak sugeruje to odpowiedź. Dodatkowo użyj ../../zamiast ../ścieżki.
RoninCoder 12.04.16
@Hani, czy udało ci się już to obejść? Spróbuję uaktualnić do rc1 i wypróbować
Rots
Więc pisanie zniknęło. Myślę, że będziesz musiał zainstalować to osobno, a kiedy to zrobię, otrzymam również wiele niepotrzebnych pakietów. W każdym razie, nawet po wykonaniu wszystkich tych czynności, nie ma już browser.d.tsfolderu poniżej typów. Tylko .jspliki poniżej dist. Jest plik o nazwie, typings.d.tswięc pomyślałem, że to nowy, ale to nie rozwiązało problemu. Budowanie dla „es6” działa, ale IE narzeka. Więc utknąłem z kompilacją „es5” i bez pisania! : /
RoninCoder
@Hani Jest nowa odpowiedź. Może to zadziała? npm install -g typings typings install
Rots
Obniżono wersję beta do wersji 15 i użyłem tego samego .d.tsz pakietu pism. Aby spełnić wymagania IE9 +, musiałem budować dla es3.
RoninCoder
48

Udało mi się to naprawić za pomocą następującego polecenia

typings install es6-promise es6-collections --ambient

Pamiętaj, że musisz typingssprawić, by powyższe polecenie działało, jeśli go nie masz, uruchom następujące polecenie, aby je zainstalować

npm install -g typings

AKTUALIZACJA

aktualizacja typów nie czyta --ambient, stało się to --globalrównież dla niektórych osób, które muszą zainstalować definicje powyższych bibliotek, wystarczy użyć następującego polecenia

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

Dzięki @bgerth za zwrócenie na to uwagi.

Khaled Al-Ansari
źródło
9
Dla mnie to byłotypings install dt~es6-promise dt~es6-collections --global --save
bgerth
1
@bgerth Myślę, że to się zmieniło z powodu typingsaktualizacji, dodam twoje rozwiązanie do odpowiedzi
Khaled Al-Ansari
typings install dt ~ es6-promise dt ~ es6-collections --global --save zadziałało dla mnie. Ten problem powtarza się i pojawia się sporadycznie ... dzięki tej poprawce możemy mieć nadzieję, że zadziała ona dłużej niż jeden dzień.
Sam
typings install dt ~ es6-promise dt ~ es6-collections --global --save też dla mnie
zadziałało
33

Jeśli masz Typescript> = 2, opcja „lib” w tsconfig.json wykona zadanie. Nie ma potrzeby pisania. https://www.typescriptlang.org/docs/handbook/compiler-options.html

{
    "compilerOptions": {
        "target": "es5",
        "lib": ["es2016", "dom"] //or es6 instead of es2016(es7)
    }
}
Niels Steenbeek
źródło
Tak… dodanie „lib”: [„es2016”, „dom”] do mojego pliku tsconfig.json to naprawiło
Marvel Moe
To jest poprawne. Należy zachować ostrożność, ponieważ niektóre z zadeklarowanych tam typów mogą nie być obecne.
Aluan Haddad
@Niels Steenbeek ma to tutaj poprawne. Te same błędy napotkałem podczas ćwiczeń na kursach Angular 2 i 4. Jednak moja zawartość lib była nieco inna: „lib”: [„es2015”, „es2015.iterable”, „dom”]
BoiseBaked
15

Dla Angular 2.0.0-rc.0dodawania node_modules/angular2/typings/browser.d.tsnie będzie działać. Najpierw dodaj plik typings.json do swojego rozwiązania z następującą zawartością:

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

A następnie zaktualizuj package.jsonplik, aby zawierał to postinstall:

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

Teraz biegnij npm install

Teraz również powinieneś zignorować typingsfolder w swoim tsconfig.jsonpliku:

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

Aktualizacja

Teraz AngularJS 2.0 używa core-jszamiast es6-shim. Aby uzyskać więcej informacji, postępuj zgodnie z jego plikiem szybkiego startu typings.json .

VahidN
źródło
Wystąpił problem z tym błędem w rc0 github.com/angular/angular/issues/4902#issuecomment-216495769
ssuperczynski
15

możesz dodać kod na początku plików .ts.

/// <reference path="../typings/index.d.ts" />
użytkownik3543469
źródło
To zadziałało dla mnie. Nie ma potrzeby instalowania pisania na całym świecie. Próbowałem na stabilnym kanciastym 2.
Gopinath Shiva
Pracowałem też dla mnie, używając Angular 2.0.0 (wydanie)
JoshuaDavid
10

Dostałem to na Angular 2 rc1. Okazuje się, że niektóre nazwy zostały zmienione przy użyciu wersji v1 w stosunku do starego 0.x. Te browser.d.tspliki stałindex.d.ts .

Po bieganiu typings install zlokalizuj plik startowy (w którym ładujesz) i dodaj:

/// <reference path="../typings/index.d.ts" /> (lub bez ../ jeśli plik startowy znajduje się w tym samym folderze, co folder z typami)

Dodawanie index.d.tsdo listy plików wtsconfig.json nie działało z jakiegoś powodu.

Ponadto es6-shimpakiet nie był potrzebny.

mbursill
źródło
7

Udało mi się to naprawić, instalując typingsmoduł.

npm install -g typings
typings install

(Korzystanie z ng 2.0.0-rc.1)

theUtherSide
źródło
1
„Brakuje typówings.json. - (Brak zależności)”. Zwraca ten błąd, gdy uruchamiam polecenie w tym samym folderze pliku app.ts. Gdzie powinienem znaleźć ten plik typings.json i kiedy powinienem uruchomić polecenie?
Ulysses Alves
7

Miałem ten sam problem i rozwiązałem go za pomocą libopcji w tsconfig.json. Jak powiedział basarat w swojej odpowiedzi , .d.tsplik jest domyślnie dołączony przez TypeScript w zależności od targetopcji kompilacji , ale to zachowanie można zmienić za pomocąlib opcji.

Można określić dodatkowe pliki definicji, które mają zostać dołączone, bez zmiany docelowej wersji JS. Na przykład jest to część mojego aktualnego compilerOptionsdla [email protected] i dodaje obsługę es2015funkcji bez instalowania czegokolwiek innego:

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

Aby uzyskać pełną listę dostępnych opcji, sprawdź oficjalny dokument .

Zauważ też, że dodałem "types": ["node"]i zainstalowałem, npm install @types/nodeaby obsługiwać require('some-module')mój kod.

Jiayi Hu
źródło
5
 typings install dt~es6-shim --save --global

i dodaj poprawną ścieżkę do index.d.ts

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

Próbowałem na @ angular-2.0.0-rc3

Ali Salehi
źródło
To rozwiązanie działa idealnie, gdy potrzebujemy pliku .d.ts w projekcie bibliotecznym.
Robin Ding
4

Jeśli npm install -g typings typings installnadal nie pomaga, usuń foldery_węzłów i typów, zanim wykonasz to polecenie.

Tibersky
źródło
4

Właśnie dlatego pomyśl, jak każdy próbuje zrobić coś innego. Wierzę, że te systemy wciąż są dalekie od ostatecznej wersji.

W moim przypadku zaktualizowałem z rc.0 do rc.5 ten błąd pojawił się.

Moją stałą zmianą była zmiana pliku 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"
    ]
}
AFetter
źródło
1
To rozwiązało również moje problemy. Wydaje się, że wersje RC są ukierunkowane na es6.
Inari
Nie celujesz już w ES5. Jeśli coś, zmień "lib", nie "target".
Aluan Haddad
4

dodaj typing.d.ts w głównym folderze aplikacji, a tam zadeklaruj zmienną, której chcesz używać za każdym razem

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

po zadeklarowaniu tego podczas pisania.d.ts, błąd wymagający nie pojawi się w aplikacji.

NARGIS PARWEEN
źródło
4

Jestem nowy w Angular, ale dla mnie rozwiązanie zostało znalezione przez po prostu importowanie danych wejściowych. Nie mogę przypisać sobie tego, znalazłem go na innej tablicy. Jest to prosta poprawka, jeśli masz ten sam problem, ale jeśli Twoje problemy są bardziej złożone, przeczytam powyższe informacje.

Mukesh :

musisz zaimportować takie dane wejściowe w górnej części elementu potomnego

import { Directive, Component, OnInit, Input } from '@angular/core';
Tripp Cannella
źródło
3

Znalazłem ten bardzo pomocny dokument na stronie Angular 2. W końcu pozwoliło mi to działać poprawnie, podczas gdy inne odpowiedzi tutaj, aby zainstalować typowanie, zawiodły mnie różnymi błędami. (Ale pomógł poprowadzić mnie we właściwym kierunku).

Zamiast dołączania kolekcji es6-promise i es6, zawiera core-js, co załatwiło sprawę ... bez konfliktów z podstawowymi definicjami ts Angular2. Ponadto dokument wyjaśnił, jak skonfigurować to wszystko, aby działo się to automatycznie podczas instalowania NPM i jak modyfikować plik typings.json.

Vern Jensen
źródło
2

Angular 2 RC1 zmienił nazwę node_modules/angular2katalogu na node_modules/angular.

Jeśli używasz pliku gulpfile do kopiowania plików do katalogu wyjściowego, który prawdopodobnie nadal masz node_modules/angular tam siedzisz, co może zostać odebrane przez kompilator i dezorientować się samo z siebie.

Więc (ostrożnie) wyczyść to, co masz w node_moduleswersji beta, a także usuń wszystkie stare typy i uruchom ponownie typings install.

Simon_Weaver
źródło
lub alternatywnie ... pracuj nad innymi rzeczami przez 4 miesiące i poczekaj, aż wersja ostateczna zacznie się od nowa (właśnie to robię)
Simon_Weaver
2

Dobra rozmowa, @ VahidN, uznałem, że potrzebuję

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

W moim tsconfigteż, aby zatrzymać błędy od es6-shimsiebie

Fergus Gallagher
źródło
2

Zaimportuj poniższą instrukcję do pliku JS.

import 'rxjs/add/operator/map';
Shivang Gupta
źródło
Odkładam aktualizację projektu do najnowszej wersji, więc dodałem import './rxjs-extensions';do app.component.tsniego plik rxjs-extensions z samouczka angular2 (w tym sugerowanej linii) i wygląda na to, że usunął te błędy.
James
Czy mógłbyś być bardziej szczegółowy? Który plik JS? ten skompilowany przez Typescript? Główny?
mm_
2

Przyjęta odpowiedź nie zapewnia realnej poprawki, a większość pozostałych sugeruje obejście „potrójnych cięć”, które nie jest już wykonalne, ponieważ browser.d.tszostało usunięte przez najnowsze RC Angular2 i dlatego nie jest już dostępne.

Zdecydowanie sugeruję zainstalowanie typingsmodułu zgodnie z sugestią kilku rozwiązań tutaj, ale nie jest to konieczne, aby zrobić to ręcznie lub globalnie - istnieje skuteczny sposób, aby to zrobić tylko dla twojego projektu i w interfejsie VS2015. Oto, co musisz zrobić:

  • Dodaj typings w pliku package.json projektu.
  • dodaj scriptblok do package.jsonpliku, aby wykonać / zaktualizować typingspo każdej akcji NPM.
  • dodaj typings.jsonplik do folderu głównego projektu zawierający odniesienie do core-js(ogólnie lepiej niż es6-shimatm).

Otóż ​​to.

Możesz także zajrzeć do tego innego wątku SO i / lub przeczytać ten post na moim blogu, aby uzyskać dodatkowe informacje.

Darkseal
źródło
2

Ten błąd pojawiał się po scaleniu mojej gałęzi deweloperskiej z moją bieżącą gałęzią. Spędziłem trochę czasu, aby rozwiązać problem. Jak widać na poniższym obrazku, kody nie mają żadnego problemu.

wprowadź opis zdjęcia tutaj

Więc jedyna poprawka, która zadziałała, to ponowne uruchomienie VSCode

Sibeesh Venu
źródło
0

Teraz musisz je zaimportować ręcznie.

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)
        );
Jithesh Chandra
źródło
-3

Zaktualizuj tsconfig.json, zmień

"target": "es5"

do

"target": "es6"
Swathi Uppu
źródło
Może to spowodować, że dane wyjściowe JavaScript będą niezgodne ze starszymi przeglądarkami.
Tom Robinson