【发布时间】:2022-01-18 22:03:35
【问题描述】:
我有一组现有的类,它们有许多获取点和一个设置点,一个来自数组的命名属性,即
return object[index];
// or
object[index] = newValue;
由于一个现有的模块做事不同于其他任何地方,我不得不更新这些以采用一个函数,该函数可以选择定义替代方法来获得适当的值:
varAccessFunction: (obj: T, index: string) => any
// For example:
varAccessFunction = (obj: { [key: string]: AbstractControl; }, index: string): any => obj[myFields.find(item => item.variableName === index)?.displayName!].value;
在重新连接所有类以获取 getter 后,我心不在焉地尝试将它也用于 setter,并得到错误:The left-hand side of an assignment expression must be a variable or a property access. 好吧,好吧,是的,我显然不能为值赋值.因此,我将不得不返回层并使用set 函数将所有构造函数线程化以匹配get 函数,以便在一个地方使用几乎相同的表达式。
除非。
有没有办法指定这个函数返回一个可以赋值的参考值?在 C++ 或其他东西中返回显式引用会很容易,但在 Typescript 中,值都将是基元,它们是值类型。我没有看到在 Typescript 中返回对原语的引用的方法,但也许我遗漏了什么?
【问题讨论】:
-
Typescript = Javascript + 类型注释。如果你不能用 Javascript 做,那么你也不能用 Typescript 做。
标签: typescript return-value variable-assignment