Browser data-* attributes can be represented as a narrow dataset object.

Dataset Attributes

dataset.ts
type ButtonDataset = {
    action: string;
    count: string;
};

function describeButton(dataset: ButtonDataset): string {
    const count: number = Number(dataset.count);
    return `${dataset.action}:${count * 2}`;
}

const actionName: string = ;
const dataset: ButtonDataset = {
    action: actionName,
    count: "3"
};

console.log(describeButton(dataset));
type ButtonDataset = {
    action: string;
    count: string;
};

function describeButton(dataset: ButtonDataset): string {
    const count: number = Number(dataset.count);
    return `${dataset.action}:${count * 2}`;
}

const actionName: string = ;
const dataset: ButtonDataset = {
    action: actionName,
    count: "3"
};

console.log(describeButton(dataset));
dataset A dataset object keeps attribute values as strings, then code converts the specific fields it needs.