UnhandledPromiseRejectionWarning: функция не найдена при экспорте файла машинописного текста - PullRequest
0 голосов
/ 24 января 2020

Я создал файл ts в узле API и экспортировал его.

Ниже приведен код myClass.ts файла

class myClass{

    firstFunction(firstParam, secondParam) {
        return firstParam + secondParam
    };
}

module.exports.myClass = myClass;

есть один js файл, который является индексом. js

Ниже приведен код

const myClass= require('./myClass.ts');

myFunction(){
    myClass.firstFunction("firstValue", "secondValue");

}

Но с помощью приведенного выше кода я получаю следующее исключение.

**UnhandledPromiseRejectionWarning: TypeError: myClass.firstFunction is not a function**
    at "myMachinePath\index.js:368:20"
    at processTicksAndRejections (internal/process/task_queues.js:94:5)
warning.js:27
(node:14944) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async 
function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)

Можно ли использовать файл ts в js с использованием require?

Я пытался установить

npm install --save-dev babel-cli babel-preset-es2015

Но я все еще получаю то же исключение. Я не могу изменить свой js файл на ts.

Обновить

Если я внесу следующие изменения в файл myClass.ts, он будет работать нормально. Не уверен, что это правильный подход.

myClass = {

    firstFunction(firstParam, secondParam) {
        return firstParam + secondParam
    };
}

module.exports = myClass;

Ответы [ 2 ]

0 голосов
/ 24 января 2020

Вы не можете вызывать метод без создания объекта класса (myClass), пожалуйста, проверьте ниже решенный код для вашей проблемы:

myClass.ts

class myClass{

    constructor(){}

    static firstFunction(firstParam, secondParam) {
        return firstParam + secondParam
    };
}
module.exports.myClass = myClass;

index. js

const myClass= require('./myClass.ts');

myFunction(){
    new myClass().firstFunction("firstValue", "secondValue");
}

Либо вы можете напрямую экспортировать объект из файла myClass.ts , как показано ниже:

module.exports.myClass = new myClass();

Поэтому вам не нужно создавать объект в index. js file:

const myClass= require('./myClass.ts');
myFunction(){
    myClass.firstFunction("firstValue", "secondValue");
}

Надеюсь, что это решение будет работать для вас.

0 голосов
/ 24 января 2020

Либо вы заставляете сделать свой метод stati c

class myClass{

    static firstFunction(firstParam, secondParam) {
        return firstParam + secondParam
    };
}

module.exports = myClass;

, либо создаете экземпляр класса, затем вызываете функцию

   const MyClass= require('./myClass.ts');

    myFunction(){
        const myClass = new MyClass();
        myClass.firstFunction("firstValue", "secondValue");

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