I'm using a library that has a following class:
class ObservableObject<T> {
constructor(value: T);
get(name: keyof T);
set(name: keyof T, value): void;
}
// example code
interface Dog { name: string; age: number }
let observableDog = new ObservableObject<dog>({ name: "Fifi", age: 1 });
When an ObservableObject
is created all fields from source object are copied into it.
Is it possible to merge
ObservableObject
with generic type T so I can access members directly without need to callget
function ?// I have to do this let name = observableDog.get("name"); // I want this let name = observableDog.name;
Can typescript somehow figure out type of a field based on
keyof
operator ?// this should be an error because dog.name is a string observableDog.set("name", 0);