Use variable name as a string over key in object. Little alternative to ts-nameof with zero-configs, but works in runtime!
yarn add ts-keyof
npm install ts-keyof
import { keyof } from 'ts-keyof';
const someVariable = 'value';
keyof({ someVariable }) === 'someVariable'; // Mission completion!
const MyReactComponent = () => {}; // You need only to rename variable
MyReactComponent.displayName = keyof({ MyReactComponent });
// You don't need to think about strings
// MyReactComponent.displayName = 'MyReactComponent';
const one = 1;
const two = 2;
const result = keyof({ one, two }); // result is `unknown` for TypeScript
result === undefined; // It's true in runtime
// You cannot use type `unknown` by accident. TypeScript checks it.
parseInt(result); // parseInt works only with strings.
// TypeScript emits error here: "Argument of type 'unknown' is not assignable
// to parameter of type 'string'. ts(2345)". It's good!
// We don't use type `never` or `any` which you can use by accident.
About unknown
, never
and any
:
github/typescript-website/type-compatibility