OK, I think I pulled this off. I did this some years ago, so bare with me.
For Planar setting, you have to use areasandlengthsparameters. Here's my example (sorry, codes not formatted right when I dropped it in..).
//https://developers.arcgis.com/javascript/3/jsapi/areasandlengthsparameters-amd.html
//https://developers.arcgis.com/javascript/3/jsapi/areasandlengthsparameters-amd.html#calculationtype
_getAreasAndLengthsParameters: function(geomArr) {
//https://community.esri.com/message/274372?commentID=274372#comment-274372
//https://community.esri.com/thread/79094
var areaLen = (this._isGeometryLine) ?
new LengthsParameters():
new AreasAndLengthsParameters();
if (this._isGeometryLine) {
areaLen.lengthUnit = GeometryService.UNIT_FOOT; //TODO GeometryService.UNIT_METER=9001 GeometryService.UNIT_FOOT = 9002
areaLen.polylines = geomArr;
} else {
areaLen.lengthUnit = GeometryService.UNIT_METER; //TODO GeometryService.UNIT_METER=9001 GeometryService.UNIT_FOOT = 9002
areaLen.areaUnit = GeometryService.UNIT_ACRES;
areaLen.polygons = geomArr;
}
areaLen.calculationType = this._getAcreageCalculationType(); //preserveShape, geodesic, planar
//console.log("_getAreasAndLengthsParameters() areaLen = ", areaLen);
return areaLen;
},
and how I set it right before I used the geometry service to calculate it....
var areaLen = this._getAreasAndLengthsParameters(resultGeom);
this._geomService.areasAndLengths(areaLen, lang.hitch(this, this._onAreasLengthsFinish), lang.hitch(this, this._onError, "areas"));
Also, fyi: I noticed that the acreages came our slightly different when calculating it via Pro vs Desktop. My calculations matched one and not the other (I can't remember which one)..