Как обновить значение свойства при вызове функции TS - PullRequest
0 голосов
/ 08 мая 2020

Привет всем! Я хочу заменить фрагмент кода JS на код TS.

JS

function newState(name){
      var state ={
        name : name,
        age : 0
      } 
      return state
    }

function initStates() {  
 this.JamesState = newState('James')
 this.RoyState = newState('Roy');
 this.RoyState.age = 20;
}

TS

newPRYState(name){
  let state = {
      name : name,
      age : 0
  }
  return state
}

initStates() { 
   this.JamesState = newState('James')
   this.RoyState = newState('Roy');
   this.RoyState.age = 20; 
} 

ошибка: Введите "объект" без свойства age

Я хочу, чтобы результат был имя: Джеймс возраст: 0

имя: Рой возраст: 20

Скажите, пожалуйста, как решить эту проблему

1 Ответ

2 голосов
/ 08 мая 2020

При работе с TS необходимо иметь тип для всех переменных. Определите интерфейс и установите этот тип с помощью переменной.

interface IState {
  name: string;
  age: number;
}

newPRYState(name: string): IState {
  let state: IState = {
      name : name,
      age : 0
  }
  return state;
}

initStates() { 
   this.JamesState: IState = newState('James')
   this.RoyState: IState = newState('Roy');
   this.RoyState.age = 20; 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...