Перевод React + Axios из JavaScript> Typescript - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь перевести этот очень полезный код из Криса Койера из JS в TS и сталкиваюсь с некоторыми проблемами.

https://codepen.io/chriscoyier/pen/jqyWXo

Первые дни с Typescript и не уверен, какой классРасширьте декларацию для использования.

Я получаю свойство или подпись Ожидаемые.ts (1131) на «const th = this» ниже.

Не уверен, что именно так я определил расширение класса для объявления React, потому что обычно в TS объявление этого const будет работать без вызова расширения React.

interface Props {
}

interface State { 
}

class App extends React.Component<Props, State>{
    function1 : () => { }
    function2 : () => { 
      const th = this;
      this.serverRequest = 
          axios.get(this.props.source).then(function(result) {    
              th.setState({ jobs: result.data.jobs});
              })    
    }
}

1 Ответ

1 голос
/ 29 марта 2019
Синтаксис

function1 : () => { } действителен для литералов объекта, а не для классов.Если это стрелка, это должно быть TypeScript открытое свойство , также известное как поле класса JavaScript.

const th = this рецепт устарел, когда вместо него можно использовать стрелки.

Должно быть:

class App extends React.Component<Props, State>{
    function1 = () => { }

    function2 = () => { 
      this.serverRequest = axios.get(this.props.source).then((result) => {    
          this.setState({ jobs: result.data.jobs});
      })    
    }
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...