【问题标题】:Typescript/angular Is there a way to convert a string into an instance variable?打字稿/角度有没有办法将字符串转换为实例变量?
【发布时间】:2021-10-14 11:16:14
【问题描述】:

所以我正在制作一个函数,它接收一个对象并从中创建一个字符串。 输入函数的对象类似于:

  testMessage: {
    alertMessagePreObject0: "Example Text "
    alertMessageObject0: "examples"
    alertMessageKey0: "exampleA" 
    alertMessagePostObject0: "End of Example"
}

而我目前的功能是:

handleAlertBody(messageToHandle):string{
    let messageBody: string = '';
      if(messageToHandle['alertMessageObject0']){
        let objectToRead = messageToHandle['alertMessageObject0'];
        let objectKey = messageToHandle['alertMessageKey0'];
        let insertion = objectToRead[objectKey];
        messageBody += messageToHandle + messageToHandle['alertMessagePreObject0'] + insertion + messageToHandle['alertMessagePostObject0'];
      } else {
        messageBody = 'no object provided';
      }
      return messageBody; 
    }

如果我在名为 examples 的类中有一个现有对象,例如 examples[exampleA] = "middle text",那么我希望我的函数在调用 handleAlertBody(testMessage) 时返回“Example Text middle text End of Example”。但是,它当前返回“示例文本未定义示例结束”。我知道这是因为类中不存在示例,只有 this.examples 存在。我尝试将插入定义为let insertion = this.objectToRead[objectkey] 的行更改,但它显然会引发错误,因为在名为 objectToRead 的类中没有定义任何内容。有没有办法将“examples”字符串转换为this.examples的实例变量?或者是否有另一种方法来实现上述目标的预期结果?谢谢!

【问题讨论】:

    标签: angular string typescript instance-variables


    【解决方案1】:

    使用 TypeScript,您可以创建一个类来设置您想要使用的属性。然后,您将在调用 matchObject 时创建此类的新实例。

    例如:

    class Example {
        _message1: string = "message"
       // ...any message
    
        constructor() {}
    }
    
    var obj = {
        x: new Example()
       // ...
    }
    

    【讨论】:

    • 感谢您的回答,但这不是我需要的。也许表达我的问题的更好方法是说我需要一种方法来匹配“example”的输入与实例变量 this.example。如果我需要澄清这个问题,请告诉我。谢谢
    猜你喜欢
    • 2019-11-12
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    相关资源
    最近更新 更多