json - 现有类型的 JSON 版本的实用程序类型?JSON
问题描述
是否存在任何实用程序类型可以做到这一点?
const foo: Foo = { ... }
const bar: string = JSON.stringify(foo)
const baz: JSON<Foo> = JSON.parse(foo)
JSON<Foo>
将具有与 相同的所有属性Foo
,但具有所做的所有更改JSON.stringify
解决方案
看起来这几乎就是我一直在寻找的东西 https://github.com/microsoft/TypeScript/issues/1897
type Json =
| null
| boolean
| number
| string
| Json[]
| { [prop: string]: Json };
type JsonCompatible<T> = {
[P in keyof T]: T[P] extends Json
? T[P]
: Pick<T, P> extends Required<Pick<T, P>>
? never
: T[P] extends (() => any) | undefined
? never
: JsonCompatible<T[P]>;
};
推荐阅读
- obiee - 未来 6 个月 OBIEE 中的数据
- java - Spring Security SSO 仅在隐身模式下工作
- angular - 无法从 app.module.ts 文件配置 ngx-ui-loader
- c++ - 当我编译并即将推送元素时,出现分段错误
- scala - pureconfig Enumeratum 更好的异常
- php - 安装 datadog APM ddtrace php 后,我的应用程序无法正常工作
- sql - 将特殊字符存储在数据库中作为 html 转义等效字符是否是一种好习惯,例如。& 作为 &
- c# - 在.net中获取函数返回值“运行中”?
- http - 骆驼 http 在 url 中使用 ${body}
- android - 如何创建 Observables 并使用 Retrofit 后来的 RxJava 更新它们?