- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我尝试将我尚未编写的项目从 Flow 迁移到 TypeScript。我有一些 Flow 结构,但我在 TypeScript 中找不到对应的结构。
type Value =
| string
| number
| boolean
| BaseObject
| Array<BaseObject>
type BaseObject = ObjectMap<?Value> & {
meta?: BaseObject;
}
type ObjectMap<T> = {
[key: string]: T;
};
我得到了这个错误:Type alias 'BaseObject' circularly references itself
和 Type alias 'Value' circularly references itself
。我了解此错误的含义,但我找不到在 TS 中无错误地获得相同行为的方法。
有什么想法吗?
最佳答案
这是 TypeScript in the playground (以及等效的 Flow in the playground )。
// The unchanged Flow type works in TypeScript.
type Value =
| string
| number
| boolean
| BaseObject
| Array<BaseObject>
// The unchanged Flow type works in TypeScript.
type ObjectMap<T> = {
[key: string]: T;
};
// The unchanged Flow type...
// type BaseObject = ObjectMap<?Value> & {
// meta?: BaseObject;
// }
// ...and the equivalent TypeScript.
interface BaseObject extends ObjectMap<Value | null | undefined> {
meta?: BaseObject;
}
关于差异的一些说明:
?Value
是 Maybe
; TypeScript 等价物是 Value |未定义 |空
。type
可以自引用/递归;在 TypeScript 中 an interface may self-reference/recurse but a type usually may not .演示
const x: BaseObject = {
prop1: null,
prop2: undefined,
prop3: 'prop3',
prop4: 10,
prop5: {
meta: {}
},
prop6: [{
meta: {}
}],
prop7: new Date() // causes an error
}
关于typescript - 流向 TypeScript 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916902/
我在通过代码更改用户控件中的流向时遇到问题,它会更改所有控件的流向。 我如何避免一些改变流向的控制,始终保持 LTR 流向。 最好的问候 最佳答案 您可以在您的资源中为每个控件声明默认样式,以便它默认
我尝试将我尚未编写的项目从 Flow 迁移到 TypeScript。我有一些 Flow 结构,但我在 TypeScript 中找不到对应的结构。 type Value = | string |
我有两个 DIV,它们分别位于 HTML 页面的两侧,例如 ( EXAMPLE ) 使用 CSS .left{ position:absolute; left:10px;
所以我在我的计算机上运行了一个 Python 程序,它每秒将相同的图像发送到 RTMP 服务器:它正在读取图像,然后发送数据。从控制台看来一切正常,但 YouTube 表示它没有收到任何数据。 这是我
我们正在尝试将数据存储实体更新作为流输入推送到 BigQuery 以提供实时数据分析。 数据存储中的每个实体将在一天内更新多次。当我们推送实体时,我需要确保只有最新的数据才应该被 bigquery 记
我们正在努力处理从 Kafka 到由 Flume 管理的 HDFS 的数据流。由于下述异常,数据未完全传输到 hdfs。然而这个错误看起来误导了我们,我们在数据目录和 hdfs 中都有足够的空间。我们
我是一名优秀的程序员,十分优秀!