-
Notifications
You must be signed in to change notification settings - Fork 13k
Closed
Labels
BugA bug in TypeScriptA bug in TypeScriptFixedA PR has been merged for this issueA PR has been merged for this issue
Milestone
Description
Neither of the following examples work:
Inherited get & set methods from a root object:
class RootObject {
get<K extends keyof this>(prop: K) {
return this[prop];
}
set<K extends keyof this>(prop: K, value: this[K]) {
this[prop] = value;
}
}
class Person extends RootObject {
parts: number;
constructor(parts: number) {
super();
this.set("parts", parts);
console.log(this.get("parts"));
}
}
Free-standing get & set functions:
class Person {
parts: number;
constructor(parts: number) {
set(this, "parts", parts);
console.log(get(this, "parts"));
}
}
function get<T, K extends keyof T>(obj: T, prop: K) {
return obj[prop];
}
function set<T, K extends keyof T>(obj: T, prop: K, value: T[K]) {
obj[prop] = value;
}
Metadata
Metadata
Assignees
Labels
BugA bug in TypeScriptA bug in TypeScriptFixedA PR has been merged for this issueA PR has been merged for this issue