Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не понимаю я этот typescript

Ника Понкраченко Ученик (233), на голосовании 1 год назад
Ошибка: Аргумент типа "() => void" нельзя назначить параметру типа "Mode | undefined".
Ничего не понятно. Что мне нужно сделать, чтобы исправить?

Исходник вообще такой:

function fileHandler(){

fs.open ('testFile.txt', 'w', (err) => {
if(err) throw err;
console.log('File created');
});

}

Я конечно могу засунуть этот скрипт в try catch, но все равно ниче не понимаю почему как
Голосование за лучший ответ
kassatik Мастер (1116) 1 год назад
Ошибка, которую вы видите, связана с типами данных в вашем коде. Возможно, вы используете неправильный тип данных для параметра функции fs.open .

Чтобы исправить эту ошибку, вам нужно убедиться, что вы правильно определили тип параметра функции fs.open . Возможно, в вашем коде отсутствует импорт или объявление правильного типа для fs.open или его параметров.

Проверьте следующие вещи:
  1. Убедитесь, что вы импортировали модуль fs в начале вашего файла:
 const fs = require('fs'); 
  1. Убедитесь, что вы используете правильные типы данных для параметров функции fs.open. В зависимости от используемой версии Node.js или типизации, параметр может ожидать тип Mode или undefined. Убедитесь, что вы передаете правильный тип данных для этого параметра.

Если вы продолжаете испытывать проблемы или не можете определить правильный тип данных, рекомендуется обратиться к официальной документации по использованию модуля fs и его функций или к сообществу разработчиков JavaScript/Node.js для получения дополнительной помощи.
Павел Просветленный (25620) 1 год назад
Зачем тебе try catch, если тебе и так прямым языком сообщают ошибку? Функция передаётся как 4-й аргумент а не 3-й. 3-й это параметр "Mode". Почитай документацию, если не знаешь как используется метод open.
Ника ПонкраченкоУченик (233) 1 год назад
Ну как зачем мне tru catch? Я вижу пример кода, вижу, что эта кб ф-ция выполняет обработку ошибки, я решила подойти иначе. В любом случая, я так и не поняла в чем прикол, почему у меня не работает. Мб я передаю неправильно параметры, но прикол в том, что если я заменю модуль с es на commonjs, то моя изначальна ф-ция работает, даже без указания параметра mode. Паранормальщина какая-то
Павел Просветленный (25620) Ника Понкраченко, я понял в чём проблема. Импорт у тебя из fs/promises. Тут используется промис. То есть, обработка в таком случае идёт через метод "then()". Я не обратил внимание.Я, если что, не знаком с node и file system API ещё не использовал. Так что помощь моя ограничивается поисковиком.
Похожие вопросы