我正在研究angular2中的一個項目,並且好奇地想知道在我的angular2應用程序中是否可以使用angularjs功能。angular2中angular.isString()的替代方法是什麼?
for ex。
在angularjs,我用來做如下操作:
- angular.isString(值)
- angular.isArray(值)
- angular.copy(價值)
我只是想知道,是否有任何模塊或包可以幫助我在angular2/typescript中做上述操作?
在此先感謝。
我正在研究angular2中的一個項目,並且好奇地想知道在我的angular2應用程序中是否可以使用angularjs功能。angular2中angular.isString()的替代方法是什麼?
for ex。
在angularjs,我用來做如下操作:
我只是想知道,是否有任何模塊或包可以幫助我在angular2/typescript中做上述操作?
在此先感謝。
只需使用JavaScript:
簡單
typeof foo === 'string'
辛PLE
Array.isArray(value)
簡單
Object.assign({},value)
除了
copy
,angular2實際上提供了
isString
和
isArray
(和更大量)函數從
"@angular/common/src/facade/lang"
。要使用這些,你必須導入它們是這樣的:
import {isString, isArray} from "@angular/common/src/facade/lang";
但是,這些功能的身體都因爲basarat提到的一樣,這是進口不再可用。 SOOO,使用上面:)
只需提一下:從src'導入是不鼓勵的。這被視爲私人包裝的實施。 –
@GünterZöchbauer謝謝!我確實爲這些功能創建了自己的包裝,因爲我想的很多,但是我從來沒有發現任何文檔說明你不應該直接使用這些 – PierreDuc
https://github.com/angular/angular.io/issues/ 1617 –
的解決方案,您可以使用lodash-es(用於lodash ES模塊導入支持)執行以下操作:
import { isString } from 'lodash-es';
console.log(isString('') === true);
我喜歡這種過度的typeof foo === 'string'
接受的答案,因爲字面字符串容易錯誤,更難以縮小。
Object.assign不提供深層複製對象,任何輸入? –
你也可以嘗試lodash:https:// lodash。com/docs#cloneDeep –
@BhushanGadekar我同意巴厘島的建議 – basarat