2017-04-04 11 views
1

別のファイルで定義されている関数を呼び出す問題を解決するために、2セントいただければ幸いです。私は、インターフェイスまたはモジュールをセットアップし、それを参照することを提案するTypescriptのドキュメントを読んだが、以下のような同じエラーを受け取った。.tsファイルに定義されている関数定義に別の.tsファイルからアクセスできません

エラー

ReferenceError: viewReport is not defined 

ファイル構造

sample 
    - sample.component.ts 
    - sample.component.html 
    - sample.component.css 
    pdf 
    viewReport.ts 

sample.component.ts

import './pdf/viewReport'; 

declare var pdfMake: any; 
declare var viewReport: any; 

export class SampleComponent { 

    addr = { 
     "streetaddress": '', 
     "cityName": '', 
     "stateCode": '', 
     "zipCode": '' 
    }; 

    constructor() {} 

    data = { 
     header: { 
      "address": { 
       "street": this.addr.streetAddress, 
       "city": this.addr.cityName, 
       "state": this.addr.stateCode, 
       "zip": this.addr.zipCode 
      } 
     } 

    } 

    downloadPdf(){ 
     let pdf = pdfMake; 
     pdf.createPdf(viewReport(this.data)).download('test.pdf'); 
    } 
} 

viewReport.ts

function viewReport(data) { 
    let docDefinition = { 
     content: [{ 
     text: 'Address: ' + data.header.address.street 
     }] 
    } 
    console.log('data:: ', data); 
    return docDefinition; 
} 
+0

import './pdf/viewReport'; declare var viewReport: any; 

が ''輸出行方不明置き換える: 'エクスポート関数viewReportを...' – n00dl3

+0

関数を次のようにエクスポートすると上記のように、私は "型がコールシグネチャを持たない式を呼び出すことはできません"。 – absingharora

+0

'data'は型付けされるべきです...' function viewReport(data:Something) ' – n00dl3

答えて

0

私は、コードに次の変更を行うことで問題を解決することができた:

viewReport.ts

は 'デフォルト' エクスポートするキーワードを追加します

export default function viewReport(data) { 

sample.component.ts

import viewReport from './pdf/viewReport'; 

参照

@n00dl3 
@vesse 
https://www.typescriptlang.org/docs/handbook/modules.html 
関連する問題