打字稿:实现转换器以在运行时访问类型

TSC 将 TS 代码编译为 JS 后,类型被移除,不再可用。

但是,原则上,应该可以通过使用 webpack/typescript/Vite 转换器在运行时使类型可用。

有没有人做到这一点?

type Data = {
  name: string;
  age: number;
};

// How can we implement `getType()`?
console.log(getType<Data>());
// It should print:
// { name: 'string', age: 'number' }

在编译类型中,类型Data是已知的,因此应该可以(尽管不容易)实现一个转换器,使该类型在运行时可用。

这将启用大量用例,例如 IO 验证。

对于我的用例,我不需要诸如泛型之类的高级类型。我只需要类型:对象、数组、字符串、数字和日期。

上下文:我正在构建一个 RPC 实现(https://github.com/brillout/wildcard-api)。

编辑:我不是在寻找像zod这样的东西,你用 zod 定义一个架构,然后推断 TypeScript 类型。我的用户直接使用 TypeScript 定义他们的类型,我需要在运行时知道这些类型。所以我确实需要一个编译时转换器。

以上是打字稿:实现转换器以在运行时访问类型的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>