2017-09-08 86 views
0

我想調用數據表類中的getPopupWindowName方法。 問題出在數據表類的頁面上,因此它不允許我調用getPopupWindowName方法。我是很新的打字稿所以不知道它究竟是如何做到 我有一個頁面,如下打字稿中的訪問方法

import BasePage from '../BasePage'; 
import PageHeaderRight from '../PageHeaderRight'; 
import DataTable from '../shared/DataTable'; 
import DateCalendarInput from '../shared/DateCalendarInput'; 

export default class FXOptionsPage extends BasePage { 
    pageControls: PageHeaderRight<FXOptionsPage>; 
    constructor() { 
    super(); 
    this.pageControls = new PageHeaderRight<FXOptionsPage>(this); 
} 
    startDate() { 
    return new DateCalendarInput('mainform', 'a_von'); 
    } 
getDataTable(): DataTable<FXOptionsPage> { 
return new DataTable<FXOptionsPage>(this, 'TableData'); 
} 
getPopupWindowName() { 
return 'OPgrafik'; 
    } 
    } 

我想訪問getPopupWindowName在下面的代碼

import ContractSecuritiesPage from '../TT/ContractSecuritiesPage'; 
import CreditLinesPage from '../TT/CreditLinesPage'; 
import FXOptionsPage from '../TT/FXOptionsPage'; 
import ChartPage from './ChartPage'; 
import ChartPopup from './ChartPopup'; 
import DataTableToolbar from './DataTableToolbar'; 
import DetailsPopup from './DetailsPopup'; 
export default class DataTable<Page> { 
tableID: string; 
page: Page; 

constructor(page: Page, tableID: string) { 
this.tableID = tableID; 
this.page = page; 
} 
clickDetailButton(): DetailsPopup<Page> { 
const buttonSelector = `tbody tr td`; 
    this.getDataTableRootNode().element(buttonSelector).click(); 

    return new DetailsPopup(this.page, this.page.getDetailsPopupWindowName()(Here it say can't find methon on type page)); 
} 
+1

如果您需要使用FXOptionsPage類的方法,您必須先創建一個實例。 – Paleo

回答

0

變化的類型變量page

export default class DataTable<FXOptionsPage> { 
page: FXOptionsPage; 
... 
} 
+0

這個類的datatable從各個地方調用,所以我不能將類型改爲特定類型。類型頁面在運行時定義 –