从字符串的静态字典中,推断出精确描述字典的类型/接口,使用值类型的字符串文字

问题描述

我有一个静态字典:

  Future<String> signIn(String email,String password) async {
    UserCredential result = await _firebaseAuth.signInWithEmailAndPassword(
        email: email,password: password);
      writeDB();
    User user = result.user;
    return user.uid;
  }

认的推断类型是 const myDict = { 1: "one",2: "two" }

我想派生一种只接受分配给 Record<1 | 2,string> 属性的确切字符串文字的类型:

myDict

我怎样才能派生出这样的类型?输入原始字典(因此 type T = { 1: typeof "one",2: typeof "two" } 等于我想要的类型)对我来说效果最好。


我知道我可以通过 typeof myDict 关键字来断言类型:

as

但是这种解决方法非常不切实际,并且容易在大型词典中出错。什么是更好的方法

解决方法

您可以使用 const assertion 完成此操作。

const myDict = {
  1: "one",2: "two",} as const

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...