#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 / вывода?