calc-ts
Type-level calculator.
Playground
Installation
Using npm:
$ npm install calc-ts
Using yarn:
$ yarn add calc-ts
Example
import type { Calculate } from "calc-ts";
type Result1 = Calculate<"1 + 2">;
type Result2 = Calculate<"1+2+3-4">;
type Result3 = Calculate<"2 * (7 + (8))">;
type Result4 = Calculate<"5 - / 9">;
const num1: Calculate<"1 + 4"> = 5;
const num2: Calculate<"1 + 4"> = 6;
type ValidExpr<S extends string> = Calculate<S> extends never ? never : S;
function safeEval<S extends string>(expr: ValidExpr<S>): Calculate<S> {
return eval(expr);
}
const result1 = safeEval("12 + 3");
const result2 = safeEval("12 = 3");
declare const expr: string;
const result3 = safeEval(expr);
License
MIT