Экспортируйте класс в Typescript и Node JS

#javascript #node.js #typescript

Вопрос:

Я создаю класс в отдельном файле для импорта из controller , но он не позволяет мне объявлять переменные внутри класса.

Это class то, что я хочу экспортировать:

 const fs = require("fs");
const rimraf = require("rimraf");

export class createDir {
    let dir = 'src/output';
    if (fs.existsSync(dir)) {
        rimraf.sync(dir);
    }else {
        fs.mkdirSync(dir);
     }
}
 

Это error то, что let показывает:

 Unexpected token. A constructor, method, accessor, or property was expected
 

Моя проблема: как я могу экспортировать функцию в Typescript и в чем проблема?

Комментарии:

1. Добро пожаловать в SO! Если на ваш первоначальный вопрос дан ответ, но у вас есть дополнительные несвязанные вопросы, лучше всего отметить этот ответ как правильный, а затем начать новый вопрос вместо того, чтобы отвечать на новые вопросы. Это позволяет сосредоточиться на вопросах и облегчает поиск.

2. @JeffB Вопрос заключается в том, что исходный вопрос просто знает, как получить это имя, потому что я не понимаю, почему оно возвращается неопределенным

3. Я отвечу на ваш вопрос, но понимание того, как правильно ссылаться на импортированные классы и функции, является отдельной проблемой для понимания того, как экспортировать классы и функции =).

4. @JeffB Хорошо, я понимаю, я лучше рассмотрю свои вопросы, спасибо. Можете ли вы решить только этот последний вопрос, чтобы я закрыл вопрос? Я все еще несколько застрял

Ответ №1:

Вам нужна функция в вашем классе:

 export class createDir {
  function checkExistsOrCreate () {
    let dir = 'src/output';
    if (fs.existsSync(dir)) {
        rimraf.sync(dir);
    }else {
        fs.mkdirSync(dir);
     } 
  }
}
 

Комментарии:

1. Хорошо, а теперь как мне экспортировать и импортировать в другой класс, то есть как я могу выполнить эту функцию в другом классе?

2.Я думаю, вы хотите, чтобы ваш класс был функцией, или класс должен называться как-то так file . Чтобы импортировать в другой файл, вы бы import {createDir} from "createDirFile" использовали его, вы бы сделали let x = new createDir(); x.checkExistsOrCreate()

3. Теперь у меня проблема, я добавил следующее: let dir = new createDir (). CheckExistsOrCreate (); но он возвращает меня неопределенным, как я могу прочитать созданную папку src / вывода?