如何访问特定的 属性 作为 TypeScript 中的参数?
How to access a specific property as a parameter in TypeScript?
给出一个简单的class:
class Point {
public x: number;
public y: number;
…
}
class 的特定 属性 应作为参数访问。在 JavaScript 中,可以快速表述如下:
let p = new Point();
function getXorY(xy) {
return p[xy]; // like p["x"] instead of p.x
}
console.log(getXorY("x"));
但这在 TypeScript 中是如何实现的?
我已经彻底搜索了答案。由于想不出合适的关键词,可惜没有成功。
在找到问题的可能解决方案的过程中,我偶然发现了“keyof”——但没有接近解决方案。
请不要根据示例的有用性来评价示例。
像这样定义getXorY
:
function getXorY(xy: keyof Point) {
return p[xy]
}
您只能将 'x'
或 'y'
传递给它
给出一个简单的class:
class Point {
public x: number;
public y: number;
…
}
class 的特定 属性 应作为参数访问。在 JavaScript 中,可以快速表述如下:
let p = new Point();
function getXorY(xy) {
return p[xy]; // like p["x"] instead of p.x
}
console.log(getXorY("x"));
但这在 TypeScript 中是如何实现的?
我已经彻底搜索了答案。由于想不出合适的关键词,可惜没有成功。
在找到问题的可能解决方案的过程中,我偶然发现了“keyof”——但没有接近解决方案。
请不要根据示例的有用性来评价示例。
像这样定义getXorY
:
function getXorY(xy: keyof Point) {
return p[xy]
}
您只能将 'x'
或 'y'
传递给它