Экспорт функции внутри класса в Typescript - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь экспортировать функцию внутри класса в Typescript.Я могу экспортировать класс и использовать его как импорт внутри другого класса.Тем не менее, когда я пытаюсь использовать функцию, она выдает мне сообщение об ошибке:

Свойство 'formatBytes' не существует в типе 'typeof Landing'.

IЯ пытаюсь экспортировать функцию formatBytes внутри класса Landing и использовать ее как Landing.formatBytes внутри класса Modules.

Экспортированный класс

import * as React from 'react';

export default class Landing extends React.Component<{}, SomeState> {
public formatBytes(bytes: number, decimals: number): string {

return 'something';
}

public componentDidMount(): void {

// code
}


public render(): JSX.Element {
const { items } = this.state;

return (
  <div>

  </div>
);
}
}

Импортированный класс

import * as React from 'react';
import Landing from './Landing'

export default class Modules extends React.Component<
{},
IDetailsListModulesState
> {

constructor(props: {}) {
super(props);

const _columns: IColumn[] = [
  {
    onRender: (item: IDetailsListModuleItem) => {
      return (
        <span>
          {Landing.formatBytes(item.sizeDifference, 3)}
        </span>
      );
    }
  },
];

this.state = {
};
}

public componentDidMount(): void {

}

public render(): JSX.Element {

}
}

1 Ответ

0 голосов
/ 05 февраля 2019

Класс Landing должен быть создан для того, чтобы вы могли использовать метод formatBytes.Либо создайте экземпляр нового экземпляра Landing, выполнив:

const myLanding = new Landing();
myLanding.formatBytes(item.sizeDifference, 3);

, либо сделайте formatBytes статическим, написав public static formatBytes...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...