首页 > 解决方案 > “计算属性”可能只是流中的文字值?

问题描述

我有一个联合类型:

export type MyType = 
  'A'|
  'B'|
  'C';

const MyA = ('A': MyType)
const X = {[MyA]:true]

Flow 抱怨最后一行,说不能使用 MyA 作为计算属性,计算属性必须是原始文字值。如何正确初始化X

标签: javascriptflowtype

解决方案


有两种方法可以做到这一点。

一种是使用文字来注释计算属性

const X = {[(MyA: string)]:true}

另一种是先声明X,然后分配密钥。

const X: {[MyType]: boolean} = {}
X[MyA] = true

推荐阅读