在Flow中等效的TypeScript记录?

时间:2018-06-01 08:52:58

标签: javascript typescript flowtype

TypeScript提供实用程序类型Record,我正在寻找它在Flow中的等价物。

我试过:{ [key: KeyType]: Value }但是这个定义有不同的语义。

1 个答案:

答案 0 :(得分:1)

等效词几乎与TypeScript相同:

// @flow

type Record<T, V> = {
  [T]: V
}

从TypeScript文档中提取示例:

type ThreeStringProps = Record<'prop1' | 'prop2' | 'prop3', string>

const test: ThreeStringProps = {
  prop1: 'test',
  prop2: 'test',
  prop3: 'test',
}

// Fails because prop3 is not a string
const failingTest: ThreeStringProps = {
  prop1: 'test',
  prop2: 'test',
  prop3: 123,
}

// Fails because `prop4` isn't a valid property
const failingTest2: ThreeStringProps = {
  prop1: 'test',
  prop2: 'test',
  prop3: 'test',
  prop4: 'test',
}

您可以在Try Flow处看到这一点。