2016-06-08 55 views
5

我正在研究angular2中的一個項目,並且好奇地想知道在我的angular2應用程序中是否可以使用angularjs功能。angular2中angular.isString()的替代方法是什麼?

for ex。

在angularjs,我用來做如下操作:

  1. angular.isString(值)
  2. angular.isArray(值)
  3. angular.copy(價值)

我只是想知道,是否有任何模塊或包可以幫助我在angular2/typescript中做上述操作

在此先感謝。

回答

8

只需使用JavaScript:

  • isString

簡單

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

辛PLE

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

簡單

Object.assign({},value) 
+0

Object.assign不提供深層複製對象,任何輸入? –

+0

你也可以嘗試lodash:https:// lodash。com/docs#cloneDeep –

+0

@BhushanGadekar我同意巴厘島的建議 – basarat

2

除了 copy,angular2實際上提供了 isStringisArray(和更大量)函數從 "@angular/common/src/facade/lang"。要使用這些,你必須導入它們是這樣的:

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

但是,這些功能的身體都因爲basarat提到的一樣,這是進口不再可用。 SOOO,使用上面:)

+1

只需提一下:從src'導入是不鼓勵的。這被視爲私人包裝的實施。 –

+0

@GünterZöchbauer謝謝!我確實爲這些功能創建了自己的包裝,因爲我想的很多,但是我從來沒有發現任何文檔說明你不應該直接使用這些 – PierreDuc

+1

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

0

的解決方案,您可以使用lodash-es(用於lodash ES模塊導入支持)執行以下操作:

import { isString } from 'lodash-es'; 

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

我喜歡這種過度的typeof foo === 'string'接受的答案,因爲字面字符串容易錯誤,更難以縮小。

相關問題