Ask Your Question
4

Can you create a TypeScript type that is restricted to having only one property?

asked 2023-03-12 11:00:00 +0000

djk gravatar image

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2021-08-22 03:00:00 +0000

nofretete gravatar image

Yes, it is possible to create a TypeScript type that is restricted to having only one property using the Record type. Here is an example:

type SinglePropertyType<K extends string, V> = Record<K, V> & { [key: string]: never };

In this example, K is the key of the single property and V is the value type.

The Record<K, V> type constraint ensures that the type has only one property with the specified key and value type. The second constraint { [key: string]: never } ensures that there are no other properties in the type.

Here is an example usage of the SinglePropertyType:

// This type is restricted to having only one property "name" of type string
type Person = SinglePropertyType<'name', string>;

// This is valid
const person: Person = { name: 'Alice' };

// This is invalid because it has more than one property
const person2: Person = { name: 'Bob', age: 30 };
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss

Add Answer


Question Tools

Stats

Asked: 2023-03-12 11:00:00 +0000

Seen: 8 times

Last updated: Aug 22 '21