An open API service indexing awesome lists of open source software.

https://github.com/ffmathy/fluffyspoon.javascript.nameof


https://github.com/ffmathy/fluffyspoon.javascript.nameof

Last synced: 9 months ago
JSON representation

Awesome Lists containing this project

README

          

# What is this?
[`@fluffy-spoon/name-of`](https://www.npmjs.com/package/@fluffy-spoon/name-of) makes it possible to get the name of a property at runtime, even if that type does not exist at runtime. Think of it as the `nameof` keyword in C#, but for TypeScript.

# Installing
`npm install @fluffy-spoon/name-of`

# Usage
```typescript
import { getPropertyName, getDeepPropertyName } from '@fluffy-spoon/name-of';

interface SomeType {
foo: boolean;

someNestedObject: {
bar: string;
}
}

console.log(getPropertyName(x => x.foo)); //prints "foo"
console.log(getPropertyName(x => x.someNestedObject)); //prints "someNestedObject"
console.log(getPropertyName(x => x.someNestedObject.bar)); //prints "bar"

console.log(getDeepPropertyName(x => x.foo)); //prints "foo"
console.log(getDeepPropertyName(x => x.someNestedObject)); //prints "someNestedObject"
console.log(getDeepPropertyName(x => x.someNestedObject.bar)); //prints "someNestedObject.bar"
```