如何使用Typescript为基于web的API定义和使用类型



我正在编写一个web服务,我想构建可以由客户端使用的类型,这是另一个存储库。所以,如果我有这样的东西:

导出接口设备{名称:字符串,地址:数量}

返回这个"shape"在json有效负载中,但我想与客户端共享类型定义,最好的方法是什么?我是否需要创建一个新的存储库并将d.ts文件作为npm包发布,然后从客户端导入?还是有更好的办法?

在一天结束时,您已经在编译时使用了可重用的代码(类型)(运行时不存在类型),并且您需要它们在客户端和服务器各自的编译过程中都可用。

如何分发代码并不重要-压缩文件,复制粘贴,载体鸽子-但对于普遍性和标准化,我认为使它们在npm模块中可用是有意义的。我不知道你说的"更好的方法"是什么意思。这只是编译时的代码共享,同样的方式,大多数npm充满了在编译时共享的代码库。

我不会特意为类型创建单独的模块,但我会考虑为客户端和服务器之间共享的部分创建单独的模块。这可以防止您将仅服务器的代码混合到客户端中,假设服务器首先是开源JS/TS。如果您需要添加任何可重用的位(例如,模型对象、数据验证器或JSON实用程序),那么这些都是理所当然的选择。当然,在第一天,这可能主要对类型有用,但如果客户端和服务器共享对类型的关注,我认为这些关注会随着时间的推移而增长是很自然的。

最新更新