Машинописная функция, преобразующая аргументыJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Гость
 Машинописная функция, преобразующая аргументы

Сообщение Гость »


Я экспериментировал с машинописным текстом и библиотекой fp-ts. Я хотел создать свою собственную «монаду», действующую на определенные значения. Код, который я придумал, следующий:

import { type Once, fromNullable, left, isRight, FlatMapNullable } from "fp-ts/lib/Either"; тип импорта { FragmentError } из "./fragmentError"; функция экспорта TransformToFragment( fn: (...args: A) => T, SafeTransform: логическое значение = ложь, customErrorMessage: string = "Нет специального сообщения"): (...args: A) => Once { const nullFragmentError = { errorOrigin: fn.name, errorType: «Нулевое значение», errorMessage: "fromNullable обнаружил нулевое значение при запуске исходной функции", customErrorMessage: customErrorMessage ?? "", аргументы: ``, stackTrace: новая ошибка().стек! } const nullErrorConstructor = fromNullable(nullFragmentError); вернуть безопасное преобразование? () => { пытаться { const res = nullErrorConstructor(fn()); вернуть isRight (рез)? рез: слева (nullFragmentError); } поймать (ошибка) { const e = ошибка как ошибка; вернуться налево({ errorOrigin: fn.name, errorType: «Ошибка фрагмента», errorMessage: электронное сообщение, аргументы: ``, customErrorMessage: customErrorMessage ?? "", stackTrace: e.stack! }) } } : () => nullErrorConstructor(fn()); } Я хочу получить функцию и преобразовать ее во что-то, что возвращает ее значение или собственный тип ошибки, если произойдет что-то неожиданное. Мой код работает. Проблема в том, что часть ts-ignore. Когда я пытаюсь выполнить проверку машинописного текста, он говорит:

Изображение

Теперь я понимаю, что если экземпляр A будет создан с помощью чего-либо, кроме массива, мой код столкнется с проблемами. Я здесь думаю, что поднимаю аргументы исходной функции до фактической преобразованной функции, поэтому я не вижу никакого способа, который может произойти, если кто-то не сделает это намеренно, машинописный текст выдает ошибки типа, когда подписи не совпадают. Как мне к этому подойти?

Изображение
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»