2017-06-21 2 views
2

ich ein Array von Strings haben:Convert string [] Literal String-Typ wörtliche

let foo = ["bar", "baz"]; 

Ich möchte etwas ähnliches wie keyof type foo auszuführen, sondern für eine Reihe eher als ein Objekt:

type DESIRED_RESULT = "bar"|"baz"; 

Gibt es eine Möglichkeit, alle eindeutigen Zeichenfolgen innerhalb eines Arrays in einen Typ zu konvertieren?

Antwort

1

foo wird als string[] gefolgert.
Die Array-Werte gehen überhaupt nicht in das Typsystem ein, das ist also unmöglich.

Wenn Sie es in der Art System setzen, es becomes possible:

let foo: ["bar", "baz"]; 
let bar: typeof foo[number] = ""; 

Typ '""' ist nicht belegbar '"bar" | "baz"' einzugeben.