Angular dan naskah: Tidak dapat menemukan nama

221

Saya menggunakan Angular (versi 2) dengan TypeScript (versi 1.6) dan ketika saya mengkompilasi kode saya mendapatkan kesalahan ini:

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

Ini kodenya:

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);
pengguna233232
sumber
Sepertinya ada masalah untuk itu di sini github.com/angular/angular/issues/4902
rob
Coba tambahkan impor berikut ini. import {ROUTER_PROVIDERS} from 'angular2/router';Saya mendapatkan masalah yang sama dan untuk beberapa alasan ini memperbaikinya untuk saya ...?!?
merampok

Jawaban:

52

Masalah yang diketahui: https://github.com/angular/angular/issues/4902

Alasan inti: .d.tsfile yang secara implisit disertakan oleh TypeScript bervariasi dengan target kompilasi, jadi orang perlu memiliki deklarasi ambient yang lebih banyak ketika menargetkan es5bahkan jika ada hal-hal yang sebenarnya ada di runtimes (mis. Chrome). Lebih lanjut tentanglib.d.ts

basarat
sumber
446
Jadi apa solusinya?
user233232
3
2.0.0-alpha.45 bagus, gunakan pengetikan dari node_modules / angular2 / bundles / typings / ** / *. D.ts
Are Butuv
2
"angular2": "2.0.0-beta.3" berfungsi, tetapi beta.4 dan beta.5 tampaknya memiliki masalah ini lagi, setidaknya ketika mengkonfigurasi proyek Anda seperti dalam tutorial
CorayThan
3
@Roj Saya masih melihat ini dalam versi beta 6 tetapi tidak berfungsi saat menggunakan referensi ke browser.d.ts
inki
3
hore! rc1 bergabung dengan ini.
RoninCoder
105

Ada solusi yang disebutkan di changelog untuk 2.0.0-beta.6 (2016-02-11) (tercantum di bawah perubahan yang berubah):

Jika Anda menggunakan --target = es5, Anda perlu menambahkan baris di suatu tempat di aplikasi Anda (misalnya, di bagian atas file .ts tempat Anda memanggil bootstrap):

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

(Perhatikan bahwa jika file Anda tidak berada di direktori yang sama dengan node_modules, Anda harus menambahkan satu atau lebih ../ ke awal jalur itu.)

pastikan Anda memiliki jalur referensi yang benar, saya perlu menambahkan ../ ke awal agar ini berfungsi.

mvdluit
sumber
3
Ini memperbaiki banyak kesalahan untuk saya, tetapi saya masih mendapatkan kesalahan seperti TS2304: Cannot find name 'module'dan TS2339: Property 'find' does not exist on type 'MyThing[]'.... Ada ide?
mwijnands
1
Bagaimana jika Anda menggunakan angular dalam paket yang dimaksudkan untuk digunakan kembali? Setiap aplikasi yang saya coba gunakan paket dengan file dengan referensi ini mengeluh pada waktu membangun tsc bahwa ia tidak dapat menemukan referensi ini.
Hans
5
Apakah ada solusi untuk struktur paket baru di Angular, saya tidak dapat menemukan browser.d.ts di struktur @angular / .... baru
I.devries
2
@ I.Devries Benar, mereka telah menghapus browser.d.ts. File-file tersebut sekarang adalah index.d.ts, dan Anda perlu satu untuk setiap komponen sudut, karena masing-masing sekarang diinstal secara terpisah di rc.0 dan yang lebih baru. Anda juga perlu menginstal "mengetik" - lihat jawaban oleh Khaled Al-Ansari dan theUtherSide di atas.
Vern Jensen
1
Saya menyelesaikannya dengan menambahkan: /// <reference path = "../ typings / index.d.ts" />
Sako73
80

Fitur ES6 seperti janji tidak ditentukan saat menargetkan ES5. Ada perpustakaan lain, tetapi core-js adalah perpustakaan javascript yang digunakan tim Angular. Ini berisi polyfill untuk ES6.

Angular 2 telah banyak berubah sejak pertanyaan ini diajukan. Deklarasi tipe jauh lebih mudah digunakan di dalam Script 2.0.

npm install -g typescript

Untuk fitur ES6 di Angular 2, Anda tidak perlu Mengetik. Cukup gunakan skrip 2.0 atau lebih tinggi dan instal @ types / core-js dengan npm:

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

Kemudian, tambahkan atribut TypeRoots dan Type ke tsconfig.json Anda:

{
  "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"
  ]
}

Ini jauh lebih mudah daripada menggunakan Typing, seperti yang dijelaskan dalam jawaban lain. Lihat posting blog Microsoft untuk informasi lebih lanjut: Skrip: The Future of Declaration Files

David Rinck
sumber
1
Saya pikir array "types" juga termasuk ke dalam objek "compilerOptions". Tapi selain itu, terima kasih banyak, saya berjuang dengan ini sepanjang hari.
plexus
@lexus, terima kasih! Anda benar tentang compilerOptions. Saya memperbaiki jawabannya.
David Rinck
Terima kasih untuk posting yang bagus, tetapi menurut URL yang Anda berikan, bahkan tidak perlu untuk menambah tsconfig.json, itu hanya benar-benar berfungsi :) Setidaknya itu berlaku untuk saya. Jadi satu-satunya hal yang perlu Anda lakukan adalah menginstal paket yang diperlukan
Ilya Chernomordik
Anda bahkan dapat menghapus typeRootsjika satu-satunya entri yang Anda miliki adalah node_modules/@types.
Morgan Touverey Quilling
Seperti pesona. Seperti @ ilya-chernomordik telah sebutkan, ini juga bekerja untuk saya tanpa penambahan TypeRootsdan Typesuntuk tsconfig.json. Dalam kasus saya, saya juga harus memperbarui plugin Gulp-typescript 2.x Gulp saya yang ditranspilasikan menggunakan dan menyematkan versi dari TypeScript 1, tetapi begitu saya memperbarui jadi saya menggunakan TypeScript 2 dan menambahkan @ types / core-js polyfill. set. Terimakasih banyak.
rscarter
49

Bagi mereka yang mengikuti tutorial Angular2 pada angular.io hanya untuk menjadi eksplisit, berikut ini adalah perluasan jawaban mvdluit tentang di mana tepatnya meletakkan kode:

Anda main.tsakan terlihat seperti ini:

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

Perhatikan bahwa Anda membiarkan ///garis miring ke depan, jangan hapus.

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

Membusuk
sumber
Saya menggunakan VS2015 MVC6 dan Angular2 beta.14, Jika Anda menempatkan garis referensi di _references.jsdalamnya tidak akan berfungsi. Harus di dalam komponen seperti yang disarankan jawaban ini. Selain itu, gunakan ../../sebagai ganti ../untuk jalur.
RoninCoder
@Hani apakah Anda sudah menemukan jalan keluarnya? Saya akan mencoba memutakhirkan ke rc1 dan mencobanya
Rots
Jadi pengetikannya hilang. Saya kira Anda harus menginstalnya secara terpisah dan ketika saya melakukannya, saya mendapatkan banyak paket tidak berguna yang ditambahkan juga. Bagaimanapun, bahkan setelah melakukan semua itu, tidak ada lagi browser.d.tsfolder pengetikan. Hanya .jsfile di bawah dist. Ada file bernama typings.d.tsjadi saya pikir itu yang baru, tetapi tidak menyelesaikan masalah. Membangun untuk 'es6' berfungsi, tetapi IE mengeluh. Sangat macet dengan build 'es5' dan tanpa mengetik! : /
RoninCoder
@Hani Ada jawaban baru. Mungkin itu akan berhasil? npm install -g typings typings install
Rots
Diturunkan ke beta.15 dan menggunakan yang sama .d.tsdari paket pengetikan. Juga untuk memenuhi persyaratan IE9 +, harus membangun untuk es3.
RoninCoder
48

Saya dapat memperbaiki ini dengan perintah berikut

typings install es6-promise es6-collections --ambient

Perhatikan bahwa Anda perlu typingsmembuat perintah di atas berfungsi, jika Anda belum menjalankan perintah berikut untuk menginstalnya

npm install -g typings

MEMPERBARUI

pembaruan pengetikan tidak membacanya --ambientmenjadi --globaljuga untuk beberapa orang Anda perlu menginstal definisi perpustakaan di atas, cukup gunakan perintah berikut

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

Terima kasih kepada @bgerth karena menunjukkan ini.

Khaled Al-Ansari
sumber
9
Bagi saya itutypings install dt~es6-promise dt~es6-collections --global --save
bgerth
1
@ bgerth Saya kira itu berubah karena typingspembaruan, saya akan menambahkan solusi Anda untuk jawabannya
Khaled Al-Ansari
mengetik install dt ~ es6-janji dt ~ es6-koleksi --global --save bekerja untuk saya. Masalah ini berulang dan terputus-putus ... thx untuk perbaikan ini mari berharap itu bekerja lebih dari satu hari.
Sam
ketik install dt ~ es6-janji dt ~ es6-koleksi --global --save bekerja untuk saya juga
Rikku121
33

Ketika memiliki Typescript> = 2 opsi "lib" di tsconfig.json akan melakukan pekerjaan itu. Tidak perlu mengetik. https://www.typescriptlang.org/docs/handbook/compiler-options.html

{
    "compilerOptions": {
        "target": "es5",
        "lib": ["es2016", "dom"] //or es6 instead of es2016(es7)
    }
}
Niels Steenbeek
sumber
Yup ... menambahkan "lib": ["es2016", "dom"] ke file tsconfig.json saya memperbaikinya
Marvel Moe
Ini benar. Gunakan hati-hati karena beberapa tipe yang dideklarasikan di dalamnya mungkin tidak ada.
Aluan Haddad
@Niels Steenbeek sudah benar di sini. Saya menemukan kesalahan yang sama saat melakukan latihan untuk kursus Angular 2 & 4. Namun, konten lib saya di mana sedikit berbeda: "lib": ["es2015", "es2015.iterable", "dom"]
BoiseBaked
15

Untuk Angular 2.0.0-rc.0menambahkan node_modules/angular2/typings/browser.d.tstidak akan berhasil. Pertama tambahkan file typings.json ke solusi Anda, dengan konten ini:

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

Dan kemudian perbarui package.jsonfile untuk menyertakan ini postinstall:

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

Sekarang jalankan npm install

Juga sekarang Anda harus mengabaikan typings folder di tsconfig.jsonfile Anda juga:

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

Memperbarui

Sekarang AngularJS 2.0 menggunakan core-jsalih-alih es6-shim. Ikuti file typings.json mulai cepat untuk info lebih lanjut.

VahidN
sumber
Ada masalah dengan kesalahan ini di rc0 github.com/angular/angular/issues/4902#issuecomment-216495769
ssuperczynski
15

Anda dapat menambahkan kode di awal file .ts.

/// <reference path="../typings/index.d.ts" />
pengguna3543469
sumber
Ini berhasil untuk saya. Tidak perlu menginstal pengetikan secara global. Mencoba pada sudut stabil 2.
Gopinath Shiva
Bekerja untuk saya juga, menggunakan Angular 2.0.0 (rilis)
JoshuaDavid
10

Saya mendapatkan ini di Angular 2 rc1. Ternyata beberapa nama diubah dengan ketikkan v1 vs yang lama 0.x. The browser.d.tsfile menjadiindex.d.ts .

Setelah berlari typings install temukan file startup Anda (tempat Anda bootstrap) dan tambahkan:

/// <reference path="../typings/index.d.ts" /> (atau tanpa ../ file startup Anda di folder yang sama dengan folder pengetikan)

Menambahkan index.d.tske daftar file ditsconfig.json tidak berfungsi karena suatu alasan.

Juga, es6-shimpaket itu tidak diperlukan.

mbursill
sumber
7

Saya dapat memperbaikinya dengan menginstal typingsmodul.

npm install -g typings
typings install

(Menggunakan ng 2.0.0-rc.1)

sisi lain
sumber
1
"'typyings.json' hilang. - (Tidak ada ketergantungan)". Ini mengembalikan kesalahan ini ketika saya menjalankan perintah di folder yang sama dari file app.ts. Di mana saya seharusnya menemukan file typings.json ini , dan kapan saya harus menjalankan perintah?
Ulysses Alves
7

Saya memiliki masalah yang sama dan saya menyelesaikannya menggunakan libopsi di tsconfig.json. Seperti yang dikatakan oleh basarat dalam jawabannya , sebuah .d.tsfile secara implisit disertakan oleh TypeScript tergantung pada targetopsi kompilasi tetapi perilaku ini dapat diubah denganlib opsi tersebut.

Anda dapat menentukan file definisi tambahan untuk dimasukkan tanpa mengubah versi JS yang ditargetkan. Sebagai contoh, ini adalah bagian dari arus saya compilerOptionsuntuk [email protected] dan menambahkan dukungan untuk es2015fitur tanpa menginstal apa pun:

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

Untuk daftar lengkap opsi yang tersedia, periksa dokumen resmi .

Perhatikan juga bahwa saya menambahkan "types": ["node"]dan menginstal npm install @types/nodeuntuk mendukung require('some-module')kode saya.

Jiayi Hu
sumber
5
 typings install dt~es6-shim --save --global

dan tambahkan jalur yang benar ke index.d.ts

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

Mencoba di @ angular-2.0.0-rc3

Ali Salehi
sumber
Solusi ini berfungsi dengan baik ketika kita membutuhkan file .d.ts dalam proyek perpustakaan.
Robin Ding
4

Jika npm install -g typings typings installmasih tidak membantu, hapus node_modules dan ketikkan folder sebelum menjalankan perintah ini.

Tibersky
sumber
4

Inilah yang berpikir bagaimana setiap orang mencoba melakukan sesuatu yang berbeda. Saya percaya sistem ini masih jauh dari versi final.

Dalam kasus saya, saya memperbarui dari rc.0 ke rc.5 kesalahan ini muncul.

Perbaikan saya adalah mengubah 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"
    ]
}
Setelah
sumber
1
Ini menyelesaikan masalah saya juga. Versi RC menargetkan es6 tampaknya.
Inari
Anda sekarang tidak lagi menargetkan ES5. Jika ada, ubah "lib", tidak "target".
Aluan Haddad
4

tambahkan typing.d.ts di folder utama aplikasi dan di sana mendeklarasikan variabel yang ingin Anda gunakan setiap saat

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

setelah mendeklarasikan ini di typing.d.ts, kesalahan untuk meminta tidak akan datang dalam aplikasi ..

NARGIS PARWEEN
sumber
4

Saya baru mengenal Angular tetapi bagi saya solusinya ditemukan hanya dengan mengimpor Input. Tidak dapat menerima kredit untuk yang ini, menemukannya di papan lain. Ini adalah perbaikan sederhana jika Anda mengalami masalah yang sama tetapi jika masalah Anda lebih kompleks, saya akan membaca hal-hal di atas.

Mukesh :

Anda harus mengimpor input seperti ini di atas komponen anak

import { Directive, Component, OnInit, Input } from '@angular/core';
Tripp Cannella
sumber
3

Saya menemukan dokumen yang sangat membantu ini di situs web Angular 2. Akhirnya membiarkan saya bekerja dengan benar, sedangkan jawaban lain di sini, untuk menginstal mengetik, gagal saya dengan berbagai kesalahan (Tapi membantu membawaku ke arah yang benar.)

Alih-alih termasuk es6-janji dan es6-koleksi, itu termasuk core-js, yang melakukan trik untuk saya ... tidak ada konflik dengan definisi inti ts Angular2. Selain itu dokumen tersebut menjelaskan cara mengatur semua ini agar terjadi secara otomatis ketika menginstal NPM, dan bagaimana memodifikasi file typings.json Anda.

Vern Jensen
sumber
2

Angular 2 RC1 mengubah nama node_modules/angular2direktori menjadi node_modules/angular.

Jika Anda menggunakan gulpfile untuk menyalin file ke direktori keluaran, Anda mungkin masih node_modules/angularduduk di sana yang mungkin diambil oleh kompiler dan membingungkannya sendiri.

Jadi (hati-hati) hapus apa yang Anda miliki di node_modulesdalamnya untuk versi beta, dan hapus juga semua pengetikan lama dan jalankan kembali typings install.

Simon_Weaver
sumber
atau sebagai alternatif ... bekerja pada hal-hal lain selama 4 bulan dan menunggu rilis terakhir untuk memulai kembali dari awal (yang saya lakukan)
Simon_Weaver
2

Panggilan bagus, @VahidN, saya merasa perlu

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

Dalam saya tsconfigjuga, untuk menghentikan kesalahan dari es6-shimdirinya sendiri

Fergus Gallagher
sumber
2

Impor pernyataan di bawah ini dalam file JS Anda.

import 'rxjs/add/operator/map';
Shivang Gupta
sumber
Saya menunda memutakhirkan proyek ke versi terbaru, jadi ditambahkan import './rxjs-extensions';ke saya app.component.tsdengan file rxjs-extensions dari tutorial angular2 (termasuk baris yang Anda sarankan) dan tampaknya telah menghapus kesalahan-kesalahan itu.
James
Bisakah Anda lebih spesifik. File JS yang mana? yang dikompilasi oleh Filescript? utama?
mm_
2

Jawaban yang diterima tidak memberikan perbaikan yang layak, dan sebagian besar yang lain menyarankan solusi "triple-slash" yang tidak layak lagi, karena browser.d.tstelah dihapus oleh RC terbaru Angular2 dan dengan demikian tidak tersedia lagi.

Saya sangat menyarankan untuk menginstal typingsmodul seperti yang disarankan oleh beberapa solusi di sini, namun itu tidak perlu dilakukan secara manual atau global - ada cara yang efektif untuk melakukannya untuk proyek Anda saja dan dalam antarmuka VS2015. Inilah yang perlu Anda lakukan:

  • Menambahkan typings file package.json proyek.
  • tambahkan scriptblok di package.jsonfile untuk menjalankan / memperbaruitypings setelah setiap aksi NPM.
  • tambahkan typings.jsonfile di folder root proyek yang berisi referensi core-js(secara keseluruhan lebih baik daripada es6-shimatm).

Itu dia.

Anda juga dapat melihat utas SO lainnya ini dan / atau membaca posting ini di blog saya untuk detail tambahan.

Darkseal
sumber
2

Saya mendapatkan kesalahan ini setelah menggabungkan cabang dev saya ke cabang saya saat ini. Saya menghabiskan beberapa waktu untuk memperbaiki masalah ini. Seperti yang Anda lihat pada gambar di bawah, tidak ada masalah dalam kode sama sekali.

masukkan deskripsi gambar di sini

Jadi satu-satunya perbaikan yang berhasil bagi saya adalah Restart VSCode

Sibeesh Venu
sumber
0

Sekarang Anda harus mengimpornya secara manual.

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
sumber
-3

Perbarui tsconfig.json, ubah

"target": "es5"

untuk

"target": "es6"
Swathi Uppu
sumber
Ini dapat menyebabkan output JavaScript Anda tidak kompatibel dengan browser lama.
Tom Robinson