首页 > 解决方案 > 浏览器与服务器代码的 Typescript 编译时条件

问题描述

我正在尝试在 Web 应用程序的浏览器和服务器部分之间共享代码。有类似条件的东西可能很有用#if。Typescript中有类似的东西吗?

例如:

interface Card {
    id: Uuid
    text: string
    created_dt: Date
}

服务器之一Uuid是数据库库中的一种类型。在浏览器上,我需要使用其他东西。

假设代码:

#if compiling_for_browser
type Uuid = somelib.Uuid
#else
type Uuid = database_lib.types.Uuid
#endif

interface Card ...

标签: typescript

解决方案


看来这是实现条件编译的最流行的库https://github.com/nippur72/ifdef-loader

TypeScript 团队还没有实现它,而且似乎也没有迅速采取行动,为了我的使用(基本上相同的用例)我将尝试一些 webpack 条件编译项,以便我可以轻松地为 web 构建和反应原生的


推荐阅读