编译时检查typescript接口是否有一个或多个属性
我需要找到一种方法,在编译时检查typescript接口是否有一个或多个属性(属性名称未知) 例如,给出以下定义:编译时检查typescript接口是否有一个或多个属性,typescript,conditional-types,Typescript,Conditional Types,我需要找到一种方法,在编译时检查typescript接口是否有一个或多个属性(属性名称未知) 例如,给出以下定义: export type Cat = {}; export type Dog = { barking: boolean }; 我需要一个HasAnyProperties,它将为我提供: type catHasProperties = HasAnyProperties<Cat>; // false (because Cat is {}) type dogHasPr
export type Cat = {};
export type Dog = { barking: boolean };
我需要一个HasAnyProperties
,它将为我提供:
type catHasProperties = HasAnyProperties<Cat>; // false (because Cat is {})
type dogHasProperties = HasAnyProperties<Dog>; // true (because Dog has one or more properties)
如果我知道这些房产的名字会容易得多,但我不知道
我猜如果这是可能的话,它看起来会像这样。结果是,它很简单:
export type HasAnyProperties<T> = {} extends T ? false : true;
导出类型HasAnyProperties={}T?假:真;
至少对我来说是这样。如果有类似需求的人发现了这个问题,请发表评论或添加新的答案。结果很简单:
export type HasAnyProperties<T> = {} extends T ? false : true;
导出类型HasAnyProperties={}T?假:真;
至少对我来说是这样。如果有类似需求的人发现此问题,请评论或添加新答案