2017-06-19 68 views
-1

logic.ts的NodeJS 「class.function是不是一個函數」

import * as ModelA from "./ModelA"; 
import * as ModelB from "./ModelB"; 


export function ProcessPurchases(purchases: ModelA.Purchase[], useInfo: boolean = false): ModelA.Purchase[] { 
    ... 
    return purchases; 

}; 

export function findSavings(Products: ModelA.Purchase[], OtherProducts: ModelA.Purchase[]): ModelA.Savings{ 
     .... 
     return savings; 
}; 

server.ts

import * as ModelA from "./ModelA"; 
import * as ModelB from "./ModelB"; 
import * as Algorithms from "./logic"; 


import * as _ from "lodash"; 


var tp = require('tedious-promises'); 
var dbConfig = { 
    ... 
}; 

var TYPES = require('tedious').TYPES; 
tp.setConnectionConfig(dbConfig); // global scope 
tp.setPromiseLibrary('es6'); 

const express = require('express') 
const bodyParser = require('body-parser') 
var request = require('request'); 

const app = express(); 
app.use(bodyParser.json()); 

app.listen(3000, function (err) { 
    if (err) { 
    throw err 
    } 
    console.log('Server started on port 3000') 
}) 


interface IKeyValue { [key: string]: any }; 

namespace ProcessLogic{ 

    function PurchaseSHR(Group: number[], Manufacturer: number, Category: number, useInfo= false): ModelA.Savings{ 
    ... 
    if (useInfo) { 
     var result= Algorithms.ProcessPurchases(myActualPurchases); //Algorithms.ProcessPurchases is not a function 
     ... 
     return result; 
    } 
    else { 
     ... 
     } 
    } 


} 

}

引發錯誤Algorithms.ProcessPurchases不是一個函數,沒有僅在運行時構建錯誤。所有文件都在同一目錄下。
東西我曾嘗試:

包裹下的命名空間「算法」的邏輯功能,並將其導入像這樣:

import {Algorithms} from "./logic" 

也試圖通過引用:/// <reference path="logic.ts" />

+0

你已經試過'導出函數functionA(){...}'? –

+1

請提供一個MCVE。 –

+0

@SayanPal是的,我有,這是我目前擁有它。編輯我的帖子以反映 – Gio

回答

0

我解決了這個問題通過創建新的.ts文件,並重寫其中的所有代碼。奇怪的是,一切似乎現在工作正常..

相關問題