{ "cells": [ { "cell_type": "code", "execution_count": 27, "id": "979a911a", "metadata": {}, "outputs": [], "source": [ "class Person {\n", "\n", " constructor(name, age){\n", " this.name = name;\n", " this.age = age;\n", " }\n", " \n", " isMajor(){\n", " return this.age > 18;\n", " }\n", " \n", " toJSON(){\n", " return {\n", " type: \"Person\",\n", " age: this.age,\n", " name: this.name,\n", " }\n", " }\n", " \n", "}\n", "\n", "function deserializeObject(object){\n", " if(object.type === \"Person\"){\n", " return new Person(object.name, object.age);\n", " }\n", " if(object.type === \"Gnome\"){\n", " return new Gnome(object.name, object.age);\n", " }\n", " if(object.type === \"Luttin\"){\n", " return new Luttin(object.name, object.age);\n", " }\n", "}\n", "\n", "function deserializeArray(lst){\n", " const ret = [];\n", " for(const e of lst){\n", " ret.push(deserializeObject(e));\n", " }\n", " return ret;\n", "}" ] } ], "metadata": { "kernelspec": { "display_name": "Deno", "language": "typescript", "name": "deno" }, "language_info": { "file_extension": ".ts", "mimetype": "text/x.typescript", "name": "typescript", "nb_converter": "script", "pygments_lexer": "typescript", "version": "5.3.3" } }, "nbformat": 4, "nbformat_minor": 5 }