程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何从 Typescript大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何从 Typescript?

开发过程中遇到如何从 Typescript的问题如何解决?下面主要结合日常开发的经验,给出你关于如何从 Typescript的解决方法建议,希望对你解决如何从 Typescript有所启发或帮助;

我在查找 npm 包或创建自己的函数以从此类中的元素生成 Json 文件时遇到问题

export class TranslatedfileElement {
    private key: String
    private hasChild: Boolean                   // True if vaule is empty,vaules not empty; false if value not empty,values is empty
    private value?: String                      // One of them should be required,because if TranslatedfileElement have any childs,private values?: TranslatedfileElement[]    // then value should be empty,if not,values should be empty
    private isTranslated?: Boolean

    public constructor() {
        this.key = '',this.hasChild = false,this.value = '',this.values = null,this.isTranslated = false
    }

    public setTranslatefileElement(
        _key: String,_value: String,_values: TranslatedfileElement[],_hasChild: Boolean,_isTranslated: Boolean
    ) {
        this.key = _key
        this.value = _value
        this.values = _values
        this.hasChild = _hasChild,this.isTranslated = _isTranslated
    }

    public setKey(_key: String) {
        this.key = _key
    }

    [...] //Other get's and set's
}

我尝试过类似的方法,但它无法正常工作并且产生的问题比解决的还多:

private converter(elementsToJsON: TranslatedfileElement[],nestedLevel: number = 0): String {
    let JsONResult =  '{'
    elementsToJsON.forEach((element) => {
      JsONResult = JsONResult + '"' + element.getKey() + '" : '
      if (element.getHasChild()) {
        JsONResult = JsONResult + 
          this.converter(element.getValues(),nestedLevel + 2)
      } else {
        JsONResult = JsONResult + '"' + element.getValue() + '",'
      }
    })
    JsONResult =  JsONResult + '},'
    JsONResult = JsON.parse(JsON.Stringify(JsONResult));
    return JsONResult
  }

有人知道好的 npm(未弃用)包可以做到这一点,或者有想法简单地解决它?

解决方法

我建议添加一个方法,将该结构转换为与您想要的 json 具有相同结构的对象,并在如此创建的对象上调用 JSON.Stringify 。

class TranslatedFileElement {
...
    public toJSON(){
        return JSON.Stringify(this.toObject());
    }
    public toObject(){
        let val:any=null;
        
        if (this.hasChild){
            const reducer = (acc:any,val:any) => ({...acc,...val});
            if (this.values)
                val = this.values.map((child:TranslatedFileElement)=>child.toObject()).reduce(reducer,{});
            
        }else{
            val = this.value;
            
        }
        return {[this.key]:val};
    }
...
}
,

你可以做的只是调用

JSON.Stringify(elementsToJSON);

类属性将被转换为 JSON。

唯一的问题是如果您的数据结构不是树并且其中包含循环。

大佬总结

以上是大佬教程为你收集整理的如何从 Typescript全部内容,希望文章能够帮你解决如何从 Typescript所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:如何从