Я создал этот NPM пакет, в настоящее время есть три функции, и после импорта пакета вы можете изменить три внутренних массива, используя функции получения и установки (что-то вроде getFaces()
и setFaces()
. Я также хотел добавить настройки вероятности, сначала я просто собирался установить их с помощью параметров функции и сделать их необязательными с помощью TypeScript:
uwuifySentence(sentence: string, first: number = 1, second: number = 1, third: number = 1): string {
// Do something with these variables
}
Но с другой стороны, я также хотел бы быть возможность использовать один параметр, чтобы установить все эти 3, так что теперь мы получаем что-то вроде этого:
uwuifySentence(sentence: string, all: number = 1, first: number = 1, second: number = 1, third: number = 1): string {
// Do something with these variables
}
Но теперь неудобно вызывать функцию, поскольку мне всегда нужно что-то передавать в all
параметр, когда я хочу изменить first
, second
или third
. Решением для этого (я думаю) было бы передать объект, содержащий настройки, но я не помню, чтобы это было сделано. 1015 * Twitter пакет имеет нечто подобное, но они просто передают настройки в конструктор класса.
Переписать не составит труда т. е. мой пакет для экспорта одного класса, где я могу передать объект настроек и просто сделать текущие экспортируемые функции некоторыми методами класса. Но тогда, когда кто-то хочет использовать только одну функцию, не заботясь о параметрах:
import { uwuifySentence } from 'uwuifier';
console.log(uwuifiySentence('Hey! How you've been?'));
становится:
import { Uwuifier } from 'uwuifier';
const uwufier = new Uwuifier();
console.log(uwuifier.uwuifyString('Hey! How you've been?'));
Но, насколько я знаю, нет и того, и другого. экспортировать класс с параметром настроек И экспортировать методы без класса (это также кажется очень запутанным, так что, может быть, лучше, если нет пути). Так что мне просто интересно, как лучше / лучше всего справиться с этим при создании пакета?
И хотя мне интересно, каков лучший способ go об этом, я тоже не уверен Если текущая установка с внутренними массивами, каждый с сеттерами и геттерами, является лучшим способом обработки этого аспекта пакета ..? Возможно, их можно будет отредактировать после того, как я экспортирую класс и установлю их как publi c properties.