簡體   English   中英

是否存在從打字稿類生成JSON聲明的任何方法?

[英]Exists any way to generate JSON declaration from a typescript class?

class A {
       constructor(public val1: number, public val2: number,public val3: string, public b: B) {
 }
}

class B {
       constructor(public val4: boolean, public val5: number) {
 }
}

存在任何接收類A並返回該類的JSON結構的函數,無論它是否只是可視的,都應返回以下代碼:

{val1: number, val2: number, val3: string, b: {val4: boolean, val5: number}}

Typescript中的一個類,它不再是{nameProperty:data type,...}的哈希

我想要僅具有屬性而沒有方法的類。

我會更好地解釋我在評論中寫的內容。

在typescript中,當您定義類時,需要在其中定義成員,但是當將其編譯為js時,成員並沒有真正添加到類中。

考慮以下打字稿:

class A {
    str: string;
    num: number;
}

它編譯為:

var A = (function () {
    function A() {
    }
    return A;
}());

如您所見,js代碼中沒有strnum成員的痕跡。
分配值時:

class A {
    constructor(public str: string, public num: number) {}
}

它編譯為:

var A = (function () {
    function A(str, num) {
        this.str = str;
        this.num = num;
    }
    return A;
}());

在這里,您可以看到strnum ,但是請注意,它們已添加到構造函數中的實例中,而沒有添加到原型中(與方法不同)或A ,因此只有在擁有實例后才能訪問它們。

因此,您無法在類中獲得屬性的映射。
您可以使用reflect-metadata包保存成員元數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM