2017-01-02 83 views
0

我只是實現了一個串行的一類如下:typescript自動序列化一個類實例?

import {File} from './file' 
import Serialization from './serializable' 

class User implements Serialization<User> { 
    username: string 
    deserialize(input) { 
    this.username = input.username 

    return this 
    } 

}

一些細節被省略

然而,我想到了就去做序列化和轉換這個對象到JSON,我需要實現一個與我在這個解串器中寫的相反的串行器。

但令人費解的是,當我這樣做時:

app.use('/abc', (req, res) => { 
    getLoggedInUser(sessionToken) 
    .then(
     user => { 
     const tmp: User = s 
     res.send(tmp) 
     } 
    ).catch(
     err => { 
     console.log("err =" + JSON.stringify(err)) 
     } 
) 

express實際上返回了此User對象的JSON版本。

我很驚訝這種行爲。這是否意味着我不需要序列化程序,因爲它是由打字機自動完成的?或者我錯過了什麼?

回答

1

如果它是一個對象或數組,它會將其串化爲JSON。從快遞文檔:

當參數是一個數組或對象,表達對 JSON表示響應:

res.send({ user: 'tobi' }); 
res.send([1,2,3]); 

https://expressjs.com/en/api.html#res.send

+0

感謝您的答覆。即使它是一個類的實例,它也會有這種行爲? –

+0

一個類的實例只是一個對象。它將忽略這些函數並將其自身的屬性串聯起來。 – elclanrs