2016-06-08 12 views
5

Sto lavorando su un progetto in angular2 e sono curioso di sapere se c'è qualche mezzo con cui posso usare le funzionalità angularjs nella mia applicazione angular2.qual è l'alternativa di angular.isString() in angular2?

per es.

in angularjs, ho usato per fare seguenti operazioni:

  1. angular.isString (valore)
  2. angular.isArray (valore)
  3. angular.copy (valore

Voglio solo sapere che c'è qualche modulo o pacchetto che può aiutarmi a fare sopra le operazioni in angular2/typescript?

Grazie in anticipo.

risposta

8

Basta usare JavaScript:

  • IsString

semplice

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

Sim PLE

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

semplice

Object.assign({},value) 
+0

Object.assign non fornisce una copia profonda dell'oggetto, nessun input su questo? –

+0

Puoi anche provare a lodash: https: // lodash.com/docs # cloneDeep –

+0

@BhushanGadekar Sono d'accordo con la raccomandazione di bali – basarat

2

Fatta eccezione per copy, angular2 in realtà fornisce le (più e molto) le funzioni isString e isArray da "@angular/common/src/facade/lang". Per utilizzare questi bisogna importarli in questo modo:

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

Ma, il corpo di queste funzioni sono le stesse basarat detto, e questa importazione non è più disponibile. Sooo, utilizzare la soluzione di cui sopra :)

+1

Solo per citare: l'importazione da 'src'è scoraggiata. È considerato l'implementazione privata del pacchetto. –

+0

@ GünterZöchbauer grazie! Ho creato il mio wrapper per funzioni come queste, perché ho immaginato tanto, ma non ho mai trovato alcuna documentazione in cui si afferma che non si dovrebbe usare direttamente questi – PierreDuc

+1

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

0

Si potrebbe utilizzare lodash-es (supporto ES modulo di importazione per lodash) per effettuare le seguenti operazioni:

import { isString } from 'lodash-es'; 

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

preferisco questo oltre la risposta accettata di typeof foo === 'string' perché stringhe letterali sono inclini agli errori e sono più difficili da minimizzare.

Problemi correlati