UNPKG

@nameof/nameof

Version:

A tiny utility for safely extracting property names from TypeScript objects — inspired by C#'s [`nameof`](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/nameof) operator.

22 lines (21 loc) 594 B
// index.ts function nameof(arg1, arg2) { if (arguments.length === 2 && (typeof arg1 === "object" || typeof arg1 === "function") && arg1 !== null && typeof arg2 === "string") { return arg2; } if (arguments.length === 1 && typeof arg1 === "function") { return arg1.name; } if (arguments.length === 1 && typeof arg1 === "object" && arg1 !== null) { const keys = Object.keys(arg1); if (keys.length !== 1) { throw new Error("Object must have exactly one string-key property"); } return keys[0]; } return arg1; } export { nameof, nameof as default };