JSFiddle - React, Tailwind, and code Playground

JavaScript

function FormDataUnsafe() {
    this.dict = {};
};

FormDataUnsafe.prototype.append = function(key, value) {
    this.dict[key] = value;
};

FormDataUnsafe.prototype.contains = function(key) {
    return this.dict.hasOwnProperty(key);
};

FormDataUnsafe.prototype.getValue = function(key) {
    return this.dict[key];
};

FormDataUnsafe.prototype.valueOf = function() {
    var fd = new FormData();
    for(var key in this.dict) {
        if (this.dict.hasOwnProperty(key))
            fd.append(key, this.dict[key]);
    }
    
    return fd;
};

FormDataUnsafe.prototype.safe = function() {
    return this.valueOf();
};

// test it
var data = new FormDataUnsafe();
data.append('param1', 'value');
data.append('param2', 11);

console.log(data.contains('param1'));
console.log(data.contains('param2'));
console.log(data.contains('param3'));

console.log(data.getValue('param1'));
console.log(data.getValue('param2'));
console.log(data.getValue('param3'));

// and please take a look at console, you should see post request
var xhr = new XMLHttpRequest;
xhr.open('POST', '/', true);
xhr.send(data.safe());