TypeScript - Wie erstellt man einen Objekttyp mit einem benutzerdefinierten Schlüssel in einer Funktion?
Ich möchte eine Funktion erstellen, die einen Schlüssel und einen Wert akzeptiert und ein neues Objekt mit diesen Daten zurückgibt. Zum Beispiel:
createObject('name', 'Foo'); // { name: "Foo" }
Und ich möchte diese Funktion auch typsicher machen, was bedeutet, dass sie einen Typ mit dem Schlüssel und dessen Werttyp zurückgeben sollte. Zum Beispiel:
type ReturnedType = { name: string };
Ich habe versucht, das zu tun, aber ich bekomme einen Fehler:
type Obj<K extends string, V> = {
[key in K]: V
};
function createObject<K extends string, V>(key: K, value: V): Obj<K, V> {
// Type '{ [x: string]: V; }' is not assignable to type 'Obj<K, V>'.
return {
[key]: value
}
}
const person = createObject('data', {
name: 'Foo',
age: 10
});
console.log(person.data.name);
Spielplatz-Link.