2016-06-08 10 views
5

Ich arbeite an einem Projekt in eckig2 und bin neugierig, ob es irgendeinen Mittel gibt, mit dem ich angularjs Funktionalitäten in meiner angular2 Anwendung nutzen kann.Was ist die Alternative von angular.isString() in angular2?

für ex.

in AngularJS, habe ich folgende Operationen zu tun:

  1. angular.isString (Wert)
  2. angular.isArray (Wert)
  3. angular.copy (value)

Ich möchte nur wissen, dass es ein Modul oder ein Paket gibt, die mir helfen können, über Operationen in angular2/typescript zu tun?

Vielen Dank im Voraus.

Antwort

8

Verwenden Sie einfach JavaScript:

  • IstZeichenfolge

Einfache

typeof foo === 'string' 
  • angular.isArray (Wert)

Sim ple

Array.isArray(value) 
  • angular.copy (Wert)

Einfache

Object.assign({},value) 
+0

Object.assign bietet keine tiefe Kopie des Objekts, irgendwelche Eingaben darauf? –

+0

Sie könnten auch versuchen, lodash: https: // lodash.com/docs # cloneDeep –

+0

@BhushanGadekar Ich stimme mit balis Empfehlung überein – basarat

2

Außer copy stellt angular2 tatsächlich die isString und isArray (und viel mehr) Funktionen aus "@angular/common/src/facade/lang". Um diese zu nutzen, müssen Sie sie wie folgt importieren:

import {isString, isArray} from "@angular/common/src/facade/lang"; 

Aber der Körper dieser Funktionen sind die gleichen wie basarat erwähnt, und dieser Import ist nicht mehr verfügbar. Sooo, verwenden Sie die Lösung oben :)

+1

Nur zu erwähnen: Der Import von 'src' wird abgeraten. Es gilt als private Implementierung des Pakets. –

+0

@ GünterZöchbauer danke! Ich habe meinen eigenen Wrapper für Funktionen wie diese erstellt, weil ich so viel dachte, aber ich habe nie eine Dokumentation gefunden, in der es heißt, dass Sie diese nicht direkt verwenden sollten: – PierreDuc

+1

https://github.com/angular/angular.io/issues/ 1617 –

0

Sie nutzen könnten lodash-es (ES-Modul Import Unterstützung für lodash) folgendes zu tun:

import { isString } from 'lodash-es'; 

console.log(isString('') === true); 

Ich ziehe diese über die akzeptierte Antwort von typeof foo === 'string' weil Stringliterale anfällig sind zu Fehlern und sind schwieriger zu minimieren.

Verwandte Themen