Vigia

Nâng cấp type-fest từ 4.x lên 5.x

So sánh API công khai của type-fest 4.41.0 và 5.10.0, được tính tự động từ kiểu TypeScript. Chữ ký thay đổi là thay đổi có thể không tương thích, không phải điều chắc chắn.

Tóm tắt

Đường dẫn import bị xóa0
Export bị xóa7
Chữ ký thay đổi83
Thành viên lớp hoặc interface bị xóa0
Thành viên lớp hoặc interface thay đổi0
Mới bị ngừng hỗ trợ6
Thay đổi yêu cầu (engines, phụ thuộc peer)1
Export mới67

Export bị xóa

importexportkindTrước
type-festOnNexttype(value: ValueType) => void
type-festOnErrortype(error: unknown) => void
type-festObservertype{ next: OnNext<ValueType>; error: OnError; complete: OnComplete; }
type-festOnCompletetype() => void
type-festStringKeyOftype`${Extract<keyof BaseType, string | number>}`
type-festObservableLiketype{ subscribe(observer?: Partial<Observer<ValueType>> | undefined): Unsubscribable; [Symbol.observable](): ObservableLike<ValueType>; }
type-festUnsubscribabletype{ unsubscribe(): void; }

Chữ ký thay đổi

exportTrướcSau
type-fest · OrA | B extends false ? false : true extends IsEqual<A, true> | IsEqual<B, true> ? true : neverIsNever<A> extends true ? IsNever<B> extends true ? false : B extends true ? true : false : A extends true ? true : IsNever<B> extends true ? false : B extends true ? true : false
type-fest · AndA | B extends true ? true : true extends IsEqual<A, false> | IsEqual<B, false> ? false : neverIsNever<A> extends true ? false : A extends true ? IsNever<B> extends true ? false : B extends true ? true : false : false
type-fest · Get(Path extends string ? SplitHelper<FixPathSquareBrackets<Path>, ".", { strictLiteralChecks: false; }, []> : Path) extends readonly [] ? BaseType : (Path extends string ? SplitHelper<FixPathSquareBrackets<Path>, ".", { strictLiteralChecks: false; }, []> : Path) extends readonly [infer Head, ...infer Tail] ? GetWithPath<PropertyOf<BaseType, Extract<Head, string>, ApplyDefaultOptions<GetOptions, DefaultGetOptions, Options>>, Extract<Tail, string[]>, ApplyDefaultOptions<GetOptions, DefaultGetOptions, Options>> : never(Path extends string ? _Split<FixPathSquareBrackets<Path>, ".", { strictLiteralChecks: false; }> : Path) extends readonly [] ? BaseType : (Path extends string ? _Split<FixPathSquareBrackets<Path>, ".", { strictLiteralChecks: false; }> : Path) extends readonly [infer Head, ...infer Tail] ? GetWithPath<PropertyOf<BaseType, Extract<Head, string>, ApplyDefaultOptions<GetOptions, DefaultGetOptions, Options>>, Extract<Tail, string[]>, ApplyDefaultOptions<GetOptions, DefaultGetOptions, Options>> : never
type-fest · EntryBaseType extends Map<unknown, unknown> ? MapEntry<BaseType> : BaseType extends Set<unknown> ? SetEntry<BaseType> : BaseType extends readonly unknown[] ? ArrayEntry<BaseType> : BaseType extends object ? ObjectEntry<BaseType> : neverBaseType extends Map<unknown, unknown> ? _MapEntry<BaseType> : BaseType extends Set<unknown> ? _SetEntry<BaseType> : BaseType extends readonly unknown[] ? _ArrayEntry<BaseType> : BaseType extends object ? _ObjectEntry<BaseType> : never
type-fest · Merge{ [KeyType in keyof ({ [Key in keyof PickIndexSignature<Destination> as Key extends keyof PickIndexSignature<Source> ? never : Key]: PickIndexSignature<Destination>[Key]; } & PickIndexSignature<Source> & { [Key in keyof OmitIndexSignature<Destination> as Key extends keyof OmitIndexSignature<Source> ? never : Key]: OmitIndexSignature<Destination>[Key]; } & OmitIndexSignature<Source>)]: ({ [Key in keyof PickIndexSignature<Destination> as Key extends keyof PickIndexSignature<Source> ? never : Key]: PickIndexSignature<Destination>[Key]; } & PickIndexSignature<Source> & { [Key in keyof OmitIndexSig…Destination extends unknown ? Source extends unknown ? If<IsEqual<Destination, Source>, Destination, { [KeyType in keyof ({ [KeyType in keyof ({ [Key in keyof PickIndexSignature<Destination> as Key extends keyof PickIndexSignature<Source> ? never : Key]: PickIndexSignature<Destination>[Key]; } & PickIndexSignature<Source>)]: ({ [Key in keyof PickIndexSignature<Destination> as Key extends keyof PickIndexSignature<Source> ? never : Key]: PickIndexSignature<Destination>[Key]; } & PickIndexSignature<Source>)[KeyType]; } & { [KeyType in keyof ({ [Key in keyof OmitIndexSignature<Destination> as Key …
type-fest · PathsT extends ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | NonRecursiveType ? never : IsAny<T> extends true ? never : T extends UnknownArray ? number extends T["length"] ? InternalPaths<StaticPartOfArray<T, []>, ApplyDefaultOptions<PathsOptions, DefaultPathsOptions, Options>> | InternalPaths<VariablePartOfArray<T>[number][], ApplyDefaultOptions<PathsOptions, DefaultPathsOptions, Options>> : InternalPaths<T, ApplyDefaultOptions<PathsOptions, DefaultPathsOptions, Options>> : T extends object ? InternalPaths<T, ApplyDefaultOptions<PathsOptions, DefaultPathsOptions, Options>> : neverT extends ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | WeakMap<object, unknown> | WeakSet<object> | NonRecursiveType ? never : IsAny<T> extends true ? never : T extends object ? InternalPaths<Required<T>, ApplyDefaultOptions<PathsOptions, DefaultPathsOptions, Options>, 0> : never
type-fest · SplitS extends string ? Delimiter extends string ? Or<Not<ApplyDefaultOptions<SplitOptions, DefaultSplitOptions, Options>["strictLiteralChecks"]>, And<IfNever<S, false, S extends string ? {} extends Record<S, never> ? false : true : false>, IfNever<Delimiter, false, Delimiter extends string ? {} extends Record<Delimiter, never> ? false : true : false>>> extends true ? S extends `${infer Head}${Delimiter}${infer Tail}` ? SplitHelper<Tail, Delimiter, ApplyDefaultOptions<SplitOptions, DefaultSplitOptions, Options>, [Head]> : Delimiter extends "" ? [] : [S] : string[] : never : neverS extends string ? Delimiter extends string ? (IsNever<Not<ApplyDefaultOptions<SplitOptions, DefaultSplitOptions, Options>["strictLiteralChecks"]>> extends true ? IsNever<IsNever<IfNotAnyOrNever<S, { ifNot: _IsStringLiteral<CollapseLiterals<IfNotAnyOrNever<S, { ifNot: _UnwrapBrand<S, Primitive>; }>>>; ifAny: false; ifNever: false; }>> extends true ? false : IfNotAnyOrNever<S, { ifNot: _IsStringLiteral<CollapseLiterals<IfNotAnyOrNever<S, { ifNot: _UnwrapBrand<S, Primitive>; }>>>; ifAny: false; ifNever: false; }> extends true ? IsNever<IfNotAnyOrNever<Delimiter, { ifNot: _IsStringLiteral<Collaps…
type-fest · WordsSentence extends `${infer FirstCharacter}${infer RemainingCharacters}` ? FirstCharacter extends WordSeparators ? [...WordsImplementation<RemainingCharacters, ApplyDefaultOptions<WordsOptions, DefaultWordsOptions, Options>, "", "">] : WordsImplementation<RemainingCharacters, ApplyDefaultOptions<WordsOptions, DefaultWordsOptions, Options>, FirstCharacter, FirstCharacter> : []Sentence extends `${infer FirstCharacter}${infer RemainingCharacters}` ? FirstCharacter extends WordSeparators | (ApplyDefaultOptions<WordsOptions, _DefaultWordsOptions, Options>["splitOnPunctuation"] extends true ? AsciiPunctuation : never) ? [...WordsImplementation<RemainingCharacters, ApplyDefaultOptions<WordsOptions, _DefaultWordsOptions, Options>, "", "">] : WordsImplementation<RemainingCharacters, ApplyDefaultOptions<WordsOptions, _DefaultWordsOptions, Options>, FirstCharacter, FirstCharacter> : []
type-fest · SchemaObjectType extends string ? ValueType : ObjectType extends Map<unknown, unknown> ? ValueType : ObjectType extends Set<unknown> ? ValueType : ObjectType extends ReadonlyMap<unknown, unknown> ? ValueType : ObjectType extends ReadonlySet<unknown> ? ValueType : ObjectType extends (infer U)[] ? Options["recurseIntoArrays"] extends false | undefined ? ValueType : Schema<U, ValueType, {}>[] : ObjectType extends (...arguments_: unknown[]) => unknown ? ValueType : ObjectType extends Date ? ValueType : ObjectType extends Function ? ValueType : ObjectType extends RegExp ? ValueType : ObjectType extends o…IsAny<Type> extends true ? Value : IsNever<Type> extends true ? Value : _Schema<Type, Value, ApplyDefaultOptions<SchemaOptions, DefaultSchemaOptions, Options>>
type-fest · IsEqual(<G>() => G extends G | (A & G) ? 1 : 2) extends <G>() => G extends G | (B & G) ? 1 : 2 ? true : false[A] extends [B] ? [B] extends [A] ? _IsEqual<A, B> : false : false
type-fest · IsTupleIsAny<TArray> extends true ? boolean : IfNever<TArray, false, TArray extends unknown ? number extends TArray["length"] ? ApplyDefaultOptions<IsTupleOptions, DefaultIsTupleOptions, Options>["fixedLengthOnly"] extends false ? IfNever<keyof TArray & `${TArray["length"]}`, TArray extends readonly [...any[], any] ? true : false, true> : false : true : false>IsNever<IsAny<TArray>> extends true ? If<IsNever<TArray>, false, TArray extends unknown ? number extends TArray["length"] ? ApplyDefaultOptions<IsTupleOptions, DefaultIsTupleOptions, Options>["fixedLengthOnly"] extends false ? "0" extends keyof TArray ? true : TArray extends readonly [...any[], any] ? true : false : false : true : false> : IsAny<TArray> extends true ? boolean : If<IsNever<TArray>, false, TArray extends unknown ? number extends TArray["length"] ? ApplyDefaultOptions<IsTupleOptions, DefaultIsTupleOptions, Options>["fixedLengthOnly"] extends false ? "0" extends keyof TArray ? tru…
type-fest · JsonifyIsAny<T> extends true ? any : T extends Infinity | -Infinity ? null : T extends JsonPrimitive ? T : T extends { toJSON(): infer J; } ? (() => J) extends () => JsonValue ? J : Jsonify<J> : T extends Number ? number : T extends String ? string : T extends Boolean ? boolean : T extends Map<any, any> | Set<any> ? EmptyObject : T extends TypedArray ? Record<string, number> : T extends NotJsonable ? never : T extends UnknownArray ? JsonifyList<T> : T extends object ? JsonifyObject<{ [KeyType in keyof ({ [Key in keyof Pick<T, Exclude<{ [Key in keyof T]: IsAny<T[Key]> extends true ? Key : undefined ex…IsAny<T> extends true ? any : T extends Infinity | -Infinity ? null : T extends JsonPrimitive ? T : T extends { toJSON(): infer J; } ? (() => J) extends () => JsonValue ? J : Jsonify<J> : T extends Number ? number : T extends String ? string : T extends Boolean ? boolean : T extends Map<any, any> | Set<any> ? EmptyObject : T extends TypedArray ? Record<string, number> : T extends NotJsonable ? never : T extends UnknownArray ? JsonifyList<T> : T extends object ? JsonifyObject<{ [KeyType in keyof ({ [Key in keyof Pick<T, Exclude<{ [Key in keyof T]: IsAny<T[Key]> extends true ? Key : IsUnknown<T[…
type-fest · IntRangeSubtract<Step, 1> extends 0 ? BuildTuple<Start, never, []>["length"] extends End ? Exclude<BuildTuple<Start, never, []>[number], never> : PrivateIntRange<Start, End, Step, 0 & Subtract<Step, 1>, [...BuildTuple<Start, never, []>, BuildTuple<Start, never, []>["length"]], BuildTuple<End, unknown, []>> : BuildTuple<Start, never, []> extends [...infer U, ...BuildTuple<End, unknown, []>] ? Exclude<([...U, ...BuildTuple<End, unknown, []>] & BuildTuple<Start, never, []>)[number], never> : PrivateIntRange<Start, End, Step, Subtract<Step, 1>, [...BuildTuple<Start, never, []>, BuildTuple<Start, never, []…IsNegative<Start> extends true ? PrivateNegativeIntRange<Start, End, Step, IfNotAnyOrNever<Step, { ifNot: _TupleOf<If<IsNegative<Step>, 0, Step>, unknown>; ifAny: unknown[]; ifNever: []; }> extends [] ? [unknown] : IfNotAnyOrNever<Step, { ifNot: _TupleOf<If<IsNegative<Step>, 0, Step>, unknown>; ifAny: unknown[]; ifNever: []; }>, IfNotAnyOrNever<Subtract<End, Start>, { ifNot: _TupleOf<If<IsNegative<Subtract<End, Start>>, 0, Subtract<End, Start>>, unknown>; ifAny: unknown[]; ifNever: []; }>, IfNotAnyOrNever<Absolute<Start>, { ifNot: _TupleOf<If<IsNegative<Absolute<Start>>, 0, Absolute<Start>>, u…
type-fest · LessThannumber extends A | B ? never : GreaterThanOrEqual<A, B> extends infer Result ? Result extends true ? false : true : neverGreaterThanOrEqual<A, B> extends infer Result ? Result extends true ? false : true : never
type-fest · OmitDeepOmitDeepHelper<T, UnionToTuple<PathUnion>> extends UnknownArray | NonRecursiveType | Set<unknown> | Map<unknown, unknown> ? (UnknownArray | NonRecursiveType | Set<unknown> | Map<unknown, unknown>) & OmitDeepHelper<T, UnionToTuple<PathUnion>> : OmitDeepHelper<T, UnionToTuple<PathUnion>> extends object ? { [TypeKey in keyof (object & OmitDeepHelper<T, UnionToTuple<PathUnion>>)]: ConditionalSimplifyDeep<(object & OmitDeepHelper<T, UnionToTuple<PathUnion>>)[TypeKey], UnknownArray | NonRecursiveType | Set<unknown> | Map<unknown, unknown>, object>; } : OmitDeepHelper<T, UnionToTuple<PathUnion>>OmitDeepHelper<T, UnionToTuple<PathUnion>> extends UnknownArray | ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | WeakMap<object, unknown> | WeakSet<object> | NonRecursiveType ? (UnknownArray | ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | WeakMap<object, unknown> | WeakSet<object> | NonRecursiveType) & OmitDeepHelper<T, UnionToTuple<PathUnion>> : OmitDeepHelper<T, UnionToTuple<PathUnion>> extends object ? { [TypeKey in keyof (object & OmitDeepHelper<T, UnionToTuple<PathUnion>>)]: ConditionalSimplifyDeep<(object & OmitDeepHelper<T, UnionToTuple<PathUnion>>)[TypeKey], UnknownArr…
type-fest · PickDeepT extends NonRecursiveType ? never : T extends UnknownArray ? UnionToIntersection<{ [P in PathUnion]: InternalPickDeep<T, P>; }[PathUnion]> : T extends object ? { [KeyType in keyof UnionToIntersection<{ [P in PathUnion]: InternalPickDeep<T, P>; }[PathUnion]>]: UnionToIntersection<{ [P in PathUnion]: InternalPickDeep<T, P>; }[PathUnion]>[KeyType]; } : neverT extends NonRecursiveType ? never : T extends UnknownArray ? UnionToIntersection<{ [P in PathUnion]: InternalPickDeep<T, P>; }[PathUnion]> : T extends object ? SimplifyDeep<UnionToIntersection<{ [P in PathUnion]: InternalPickDeep<T, P>; }[PathUnion]>> : never
type-fest · WritableBaseType extends ReadonlyMap<infer KeyType, infer ValueType> ? Map<KeyType, ValueType> : BaseType extends ReadonlySet<infer ItemType> ? Set<ItemType> : BaseType extends readonly unknown[] ? WritableArray<BaseType> : { [KeyType in keyof ({ [KeyType in keyof BaseType as Filter<KeyType, Keys>]: BaseType[KeyType]; } & { -readonly [KeyType in keyof Pick<BaseType, Keys>]: Pick<BaseType, Keys>[KeyType]; })]: ({ [KeyType in keyof BaseType as Filter<KeyType, Keys>]: BaseType[KeyType]; } & { -readonly [KeyType in keyof Pick<BaseType, Keys>]: Pick<BaseType, Keys>[KeyType]; })[KeyType]; }BaseType extends ReadonlyMap<infer KeyType, infer ValueType> ? Map<KeyType, ValueType> : BaseType extends ReadonlySet<infer ItemType> ? Set<ItemType> : BaseType extends readonly unknown[] ? WritableArray<BaseType> : { [KeyType in keyof ({ [KeyType in keyof BaseType as Filter<KeyType, Keys>]: BaseType[KeyType]; } & { -readonly [KeyType in keyof BaseType as KeyType extends Keys ? KeyType : never]: BaseType[KeyType]; })]: ({ [KeyType in keyof BaseType as Filter<KeyType, Keys>]: BaseType[KeyType]; } & { -readonly [KeyType in keyof BaseType as KeyType extends Keys ? KeyType : never]: BaseType[KeyTy…
type-fest · ArrayTailApplyDefaultOptions<ArrayTailOptions, DefaultArrayTailOptions, Options> extends infer ResolvedOptions extends Required<ArrayTailOptions> ? TArray extends UnknownArray ? _ArrayTail<TArray> extends infer Result ? ResolvedOptions["preserveReadonly"] extends true ? IfArrayReadonly<TArray, Readonly<Result>, Result> : Result : never : never : neverIsAny<TArray> extends true ? any : IsNever<TArray> extends true ? never : TArray extends UnknownArray ? _ArrayTail<TArray> extends infer Result ? If<IsArrayReadonly<TArray>, Readonly<Result>, Result> : never : never
type-fest · CamelCaseType extends string ? string extends Type ? Type : Uncapitalize<CamelCaseFromArray<Words<Type extends Uppercase<Type> ? Lowercase<Type> : Type>, ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>, "">> : TypeType extends string ? string extends Type ? Type : `${Options["preserveLeadingUnderscores"] extends true ? LeadingUnderscores<Type, ""> : ""}${Uncapitalize<CamelCaseFromArray<Words<Type extends Uppercase<Type> ? Lowercase<Type> : Type, Options>, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>, "">>}` : Type
type-fest · IsLiteralIsPrimitive<T> extends true ? IsNotFalse<IsLiteralUnion<T>> : falseIsAny<T> extends true ? false : IsNever<T> extends true ? false : _IsLiteral<CollapseLiterals<UnwrapBrand<T>>>
type-fest · KebabCaseValue extends string ? IfNever<Value, false, Value extends string ? {} extends Record<Value, never> ? false : true : false> extends false ? Value : Lowercase<RemoveFirstLetter<DelimiterCaseFromArray<WordsImplementation<Value, IfAny<IfAny<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, IfNever<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, { [KeyType in keyof ({ [KeyType in keyof ({} & PickIndexSignature<{ [Key in keyof ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options> a…Value extends string ? IfNotAnyOrNever<Value, { ifNot: _IsStringLiteral<CollapseLiterals<IfNotAnyOrNever<Value, { ifNot: _UnwrapBrand<Value, Primitive>; }>>>; ifAny: false; ifNever: false; }> extends false ? Value : Lowercase<DelimiterCaseFromArray<WordsImplementation<Value, ApplyDefaultOptions<WordsOptions, _DefaultWordsOptions, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>>, "", "">, "-", "">> : Value
type-fest · MergeDeep([undefined] extends [ConditionalSimplifyDeep<Destination, UnknownArray | NonRecursiveType | Set<unknown> | Map<unknown, unknown>, object> | ConditionalSimplifyDeep<Source, UnknownArray | NonRecursiveType | Set<unknown> | Map<unknown, unknown>, object>] ? never : ConditionalSimplifyDeep<Destination, UnknownArray | NonRecursiveType | Set<unknown> | Map<unknown, unknown>, object> extends UnknownRecord ? ConditionalSimplifyDeep<Source, UnknownArray | NonRecursiveType | Set<unknown> | Map<unknown, unknown>, object> extends UnknownRecord ? MergeDeepRecord<UnknownRecord & ConditionalSimplifyDeep<Des…([undefined] extends [ConditionalSimplifyDeep<Destination, UnknownArray | ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | WeakMap<object, unknown> | WeakSet<object> | NonRecursiveType, object> | ConditionalSimplifyDeep<Source, UnknownArray | ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | WeakMap<object, unknown> | WeakSet<object> | NonRecursiveType, object>] ? never : ConditionalSimplifyDeep<Destination, UnknownArray | ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | WeakMap<object, unknown> | WeakSet<object> | NonRecursiveType, object> extends UnknownRecord ? ConditionalS…
type-fest · SnakeCaseValue extends string ? IfNever<Value, false, Value extends string ? {} extends Record<Value, never> ? false : true : false> extends false ? Value : Lowercase<RemoveFirstLetter<DelimiterCaseFromArray<WordsImplementation<Value, IfAny<IfAny<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, IfNever<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, { [KeyType in keyof ({ [KeyType in keyof ({} & PickIndexSignature<{ [Key in keyof ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options> a…Value extends string ? IfNotAnyOrNever<Value, { ifNot: _IsStringLiteral<CollapseLiterals<IfNotAnyOrNever<Value, { ifNot: _UnwrapBrand<Value, Primitive>; }>>>; ifAny: false; ifNever: false; }> extends false ? Value : Lowercase<DelimiterCaseFromArray<WordsImplementation<Value, ApplyDefaultOptions<WordsOptions, _DefaultWordsOptions, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>>, "", "">, "_", "">> : Value
type-fest · ArraySliceArray_ extends unknown ? And<IsEqual<Start, never>, IsEqual<End, never>> extends true ? Array_ : number extends Array_["length"] ? VariableLengthArraySliceHelper<Array_, Start, End> : ArraySliceHelper<Array_, IsEqual<Start, never> extends true ? 0 : Start, IsEqual<End, never> extends true ? Array_["length"] : End, [], [], Array_["length"], IsNegative<IsEqual<Start, never> extends true ? 0 : Start> extends true ? Sum<Array_["length"], IsEqual<Start, never> extends true ? 0 : Start> extends infer AddResult extends number ? number extends AddResult ? 0 : GreaterThan<AddResult, 0> extends true ? A…Array_ extends unknown ? IsNever<Start> extends true ? IsNever<End> extends true ? _ArraySlice<Array_, Start, End> : End extends unknown ? _ArraySlice<Array_, Start, End> : never : IsNever<End> extends true ? Start extends unknown ? _ArraySlice<Array_, Start, End> : never : Start extends unknown ? End extends unknown ? _ArraySlice<Array_, Start, End> : never : never : never
type-fest · JsonObject{ [x: string]: JsonValue; } & { [x: string]: JsonValue | undefined; }{ [x: string]: JsonValue; }
type-fest · PascalCaseCamelCase<Value, ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>> extends string ? Capitalize<string & CamelCase<Value, ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>>> : CamelCase<Value, ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>>CamelCase<Value, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>> extends string ? Capitalize<string & CamelCase<Value, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>>> : CamelCase<Value, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>>
type-fest · GreaterThanA extends number ? B extends number ? number extends A | B ? never : Or<And<IsEqual<IsEqual<A, Infinity>, true>, false>, And<IsEqual<IsEqual<B, -Infinity>, true>, false>> extends true ? true : Or<And<IsEqual<IsEqual<A, -Infinity>, true>, false>, And<IsEqual<IsEqual<B, Infinity>, true>, false>> extends true ? false : true extends IsEqual<A, Infinity> | IsEqual<A, -Infinity> | IsEqual<B, Infinity> | IsEqual<B, -Infinity> ? false : [true, false] extends [IsNegative<A>, IsNegative<B>] ? false : [false, true] extends [IsNegative<A>, IsNegative<B>] ? true : [false, false] extends [IsNegative<A>, IsN…A extends number ? B extends number ? number extends A | B ? boolean : (IsNever<IsNever<IsEqual<IsEqual<A, Infinity>, true>> extends true ? false : IsEqual<IsEqual<A, Infinity>, true> extends true ? IsNever<IsEqual<IsEqual<B, Infinity>, false>> extends true ? false : IsEqual<IsEqual<B, Infinity>, false> extends true ? true : false : false> extends true ? IsNever<IsNever<IsEqual<IsEqual<B, -Infinity>, true>> extends true ? false : IsEqual<IsEqual<B, -Infinity>, true> extends true ? IsNever<IsEqual<IsEqual<A, -Infinity>, false>> extends true ? false : IsEqual<IsEqual<A, -Infinity>, false> extend…
type-fest · PackageJson{ [x: string]: JsonValue; } & { [x: string]: JsonValue | undefined; } & NodeJsStandard & PackageJsonStandard & NonStandardEntryPoints & TypeScriptConfiguration & YarnConfiguration & JSPMConfigurationJsonObject & NodeJsStandard & PackageJsonStandard & NonStandardEntryPoints & TypeScriptConfiguration & YarnConfiguration & JSPMConfiguration
type-fest · PartialDeepT extends BuiltIns | (new (...arguments_: any[]) => unknown) ? T : IsNever<keyof T> extends true ? T : T extends Map<infer KeyType, infer ValueType> ? Map<_PartialDeep<KeyType, ApplyDefaultOptions<PartialDeepOptions, DefaultPartialDeepOptions, Options>>, _PartialDeep<ValueType, ApplyDefaultOptions<PartialDeepOptions, DefaultPartialDeepOptions, Options>>> : T extends Set<infer ItemType> ? Set<_PartialDeep<ItemType, ApplyDefaultOptions<PartialDeepOptions, DefaultPartialDeepOptions, Options>>> : T extends ReadonlyMap<infer KeyType, infer ValueType> ? ReadonlyMap<_PartialDeep<KeyType, ApplyDefault…T extends BuiltIns | (new (...arguments_: any[]) => unknown) ? T : T extends Map<infer KeyType, infer ValueType> ? Map<_PartialDeep<KeyType, ApplyDefaultOptions<PartialDeepOptions, DefaultPartialDeepOptions, Options>>, _PartialDeep<ValueType, ApplyDefaultOptions<PartialDeepOptions, DefaultPartialDeepOptions, Options>>> : T extends Set<infer ItemType> ? Set<_PartialDeep<ItemType, ApplyDefaultOptions<PartialDeepOptions, DefaultPartialDeepOptions, Options>>> : T extends ReadonlyMap<infer KeyType, infer ValueType> ? ReadonlyMap<_PartialDeep<KeyType, ApplyDefaultOptions<PartialDeepOptions, DefaultP…
type-fest · SetOptionalBaseType extends unknown ? { [KeyType in keyof ({ [KeyType in keyof BaseType as Filter<KeyType, Keys>]: BaseType[KeyType]; } & Partial<HomomorphicPick<BaseType, Keys>>)]: ({ [KeyType in keyof BaseType as Filter<KeyType, Keys>]: BaseType[KeyType]; } & Partial<HomomorphicPick<BaseType, Keys>>)[KeyType]; } : never(BaseType extends (...arguments_: never) => any ? (...arguments_: Parameters<BaseType>) => ReturnType<BaseType> : unknown) & _SetOptional<BaseType, Keys>
type-fest · SetReadonlyBaseType extends unknown ? { [KeyType in keyof ({ [KeyType in keyof BaseType as Filter<KeyType, Keys>]: BaseType[KeyType]; } & Readonly<HomomorphicPick<BaseType, Keys>>)]: ({ [KeyType in keyof BaseType as Filter<KeyType, Keys>]: BaseType[KeyType]; } & Readonly<HomomorphicPick<BaseType, Keys>>)[KeyType]; } : never(BaseType extends (...arguments_: never) => any ? (...arguments_: Parameters<BaseType>) => ReturnType<BaseType> : unknown) & _SetReadonly<BaseType, Keys>
type-fest · SetRequiredBaseType extends UnknownArray ? SetArrayRequired<BaseType, Keys, [], []> extends infer ResultantArray ? IfArrayReadonly<BaseType, Readonly<ResultantArray>, ResultantArray> : never : { [KeyType in keyof ({ [KeyType in keyof BaseType as Filter<KeyType, Keys>]: BaseType[KeyType]; } & Required<HomomorphicPick<BaseType, Keys>>)]: ({ [KeyType in keyof BaseType as Filter<KeyType, Keys>]: BaseType[KeyType]; } & Required<HomomorphicPick<BaseType, Keys>>)[KeyType]; }(BaseType extends (...arguments_: never) => any ? (...arguments_: Parameters<BaseType>) => ReturnType<BaseType> : unknown) & _SetRequired<BaseType, Keys>
type-fest · ReadonlyDeepT extends BuiltIns ? T : T extends new (...arguments_: any[]) => unknown ? T : T extends (...arguments_: any[]) => unknown ? {} extends ReadonlyObjectDeep<T> ? T : HasMultipleCallSignatures<T> extends true ? T : ((...arguments_: Parameters<T>) => ReturnType<T>) & ReadonlyObjectDeep<T> : T extends Readonly<ReadonlyMap<infer KeyType, infer ValueType>> ? Readonly<ReadonlyMap<ReadonlyDeep<KeyType>, ReadonlyDeep<ValueType>>> : T extends Readonly<ReadonlySet<infer ItemType>> ? Readonly<ReadonlySet<ReadonlyDeep<ItemType>>> : T extends readonly [] | readonly never[] ? readonly [] : T extends readonly …T extends BuiltIns ? T : T extends new (...arguments_: any[]) => unknown ? T : T extends (...arguments_: any[]) => unknown ? {} extends _ReadonlyObjectDeep<T> ? T : HasMultipleCallSignatures<T> extends true ? T : ((...arguments_: Parameters<T>) => ReturnType<T>) & _ReadonlyObjectDeep<T> : T extends Readonly<ReadonlyMap<infer KeyType, infer ValueType>> ? Readonly<ReadonlyMap<ReadonlyDeep<KeyType>, ReadonlyDeep<ValueType>>> : T extends Readonly<ReadonlySet<infer ItemType>> ? Readonly<ReadonlySet<ReadonlyDeep<ItemType>>> : T extends readonly [] | readonly never[] ? readonly [] : T extends readonl…
type-fest · RequiredDeepE extends BuiltIns ? E : E extends Map<infer KeyType, infer ValueType> ? Map<RequiredDeep<KeyType, Exclude<KeyType, undefined>>, RequiredDeep<ValueType, Exclude<ValueType, undefined>>> : E extends Set<infer ItemType> ? Set<RequiredDeep<ItemType, Exclude<ItemType, undefined>>> : E extends ReadonlyMap<infer KeyType, infer ValueType> ? ReadonlyMap<RequiredDeep<KeyType, Exclude<KeyType, undefined>>, RequiredDeep<ValueType, Exclude<ValueType, undefined>>> : E extends ReadonlySet<infer ItemType> ? ReadonlySet<RequiredDeep<ItemType, Exclude<ItemType, undefined>>> : E extends WeakMap<infer KeyType ext…T extends BuiltIns ? T : T extends Map<infer KeyType, infer ValueType> ? Map<RequiredDeep<KeyType>, RequiredDeep<ValueType>> : T extends Set<infer ItemType> ? Set<RequiredDeep<ItemType>> : T extends ReadonlyMap<infer KeyType, infer ValueType> ? ReadonlyMap<RequiredDeep<KeyType>, RequiredDeep<ValueType>> : T extends ReadonlySet<infer ItemType> ? ReadonlySet<RequiredDeep<ItemType>> : T extends WeakMap<infer KeyType extends object, infer ValueType> ? WeakMap<RequiredDeep<KeyType>, RequiredDeep<ValueType>> : T extends WeakSet<infer ItemType extends object> ? WeakSet<RequiredDeep<ItemType>> : T ext…
type-fest · SimplifyDeepType extends ExcludeType | NonRecursiveType | Set<unknown> | Map<unknown, unknown> ? Type : Type extends object ? { [TypeKey in keyof Type]: ConditionalSimplifyDeep<Type[TypeKey], ExcludeType | NonRecursiveType | Set<unknown> | Map<unknown, unknown>, object>; } : TypeType extends ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | WeakMap<object, unknown> | WeakSet<object> | ExcludeType | NonRecursiveType ? Type : Type extends object ? { [TypeKey in keyof Type]: ConditionalSimplifyDeep<Type[TypeKey], ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | WeakMap<object, unknown> | WeakSet<object> | ExcludeType | NonRecursiveType, object>; } : Type
type-fest · StringRepeatIsNegative<Count> extends true ? never : Input extends "" ? "" : Count extends 0 ? "" : IsNotFalse<LiteralCheck<Count, number> | LiteralCheck<Count, bigint>> extends false ? string : StringRepeatHelper<Input, Count, [never], `${Input}`>Count extends unknown ? IsNegative<Count> extends true ? never : S extends "" ? "" : IsNumericLiteral<Count> extends false ? string : `${Count}` extends `${string}e${string}` ? string : BuildStringDigitByDigit<S, `${Count}`, ""> : never
type-fest · UnionToTupleIsNever<T> extends false ? [...UnionToTuple<Exclude<T, L>, LastOfUnion<Exclude<T, L>>>, L] : []_UnionToTuple<Union, [], UnionMember<Union>> extends infer Result extends UnknownArray ? Result : never
type-fest · UnwrapOpaqueOpaqueType extends Tag<PropertyKey, any> ? RemoveAllTags<OpaqueType> : OpaqueType extends Opaque<infer Type, OpaqueType[typeof tag]> ? Type : OpaqueTypeOpaqueType extends Tag<PropertyKey, any> ? RemoveAllTags<OpaqueType> : OpaqueType extends Opaque<infer Type, OpaqueType[any]> ? Type : OpaqueType
type-fest · UnwrapTaggedTaggedType extends Tag<PropertyKey, any> ? { [ThisTag in keyof TaggedType[typeof tag]]: TaggedType extends Tagged<infer Type, ThisTag, TaggedType[typeof tag][ThisTag]> ? RemoveAllTags<Type> : never; }[keyof TaggedType[typeof tag]] : TaggedTypeTaggedType extends Tag<PropertyKey, any> ? { [ThisTag in keyof TaggedType[any]]: TaggedType extends Tagged<infer Type, ThisTag, TaggedType[any][ThisTag]> ? RemoveAllTags<Type> : never; }[keyof TaggedType[any]] : TaggedType
type-fest · WritableDeepT extends BuiltIns ? T : T extends (...arguments_: any[]) => unknown ? {} extends WritableObjectDeep<T> ? T : HasMultipleCallSignatures<T> extends true ? T : ((...arguments_: Parameters<T>) => ReturnType<T>) & WritableObjectDeep<T> : T extends ReadonlyMap<unknown, unknown> ? WritableMapDeep<T> : T extends ReadonlySet<unknown> ? WritableSetDeep<T> : T extends readonly unknown[] ? WritableArrayDeep<T> : T extends object ? WritableObjectDeep<T> : unknownT extends BuiltIns ? T : T extends (...arguments_: any[]) => unknown ? {} extends _WritableObjectDeep<T> ? T : HasMultipleCallSignatures<T> extends true ? T : ((...arguments_: Parameters<T>) => ReturnType<T>) & _WritableObjectDeep<T> : T extends ReadonlyMap<unknown, unknown> ? WritableMapDeep<T> : T extends ReadonlySet<unknown> ? WritableSetDeep<T> : T extends readonly unknown[] ? WritableArrayDeep<T> : T extends object ? _WritableObjectDeep<T> : unknown
type-fest · DelimiterCaseValue extends string ? IsStringLiteral<Value> extends false ? Value : Lowercase<RemoveFirstLetter<DelimiterCaseFromArray<Words<Value, ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>>, Delimiter, "">>> : ValueValue extends string ? Delimiter extends string ? IsStringLiteral<Value> extends false ? Value : Lowercase<DelimiterCaseFromArray<Words<Value, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>, Delimiter, "">> : never : Value
type-fest · ReadonlyTuplenumber extends Length ? readonly Element[] : BuildTupleHelper<Element, Length, []>{ readonly [P in keyof TupleOf<Length, Element>]: TupleOf<Length, Element>[P]; }
type-fest · SchemaOptions{ readonly recurseIntoArrays?: boolean | undefined; }{ recurseIntoArrays?: boolean | undefined; }
type-fest · TupleToObjectIsAny<TArray> extends true ? any : { [Key in keyof TArray as Key & (`${number}` | (IsTuple<TArray> extends true ? never : number))]: TArray[Key]; }IsNever<IsAny<TArray>> extends true ? { [Key in keyof TArray as Key & (`${number}` | (IsTuple<TArray> extends true ? never : number))]: TArray[Key]; } : IsAny<TArray> extends true ? any : { [Key in keyof TArray as Key & (`${number}` | (IsTuple<TArray> extends true ? never : number))]: TArray[Key]; }
type-fest · GetTagMetadataType[typeof tag][TagName]Type[any][TagName]
type-fest · IntClosedRangeSubtract<Skip, 1> extends 0 ? BuildTuple<Start, never, []>["length"] extends Sum<End, 1> ? Exclude<BuildTuple<Start, never, []>[number], never> : PrivateIntRange<Start, Sum<End, 1>, Skip, 0 & Subtract<Skip, 1>, [...BuildTuple<Start, never, []>, BuildTuple<Start, never, []>["length"]], BuildTuple<Sum<End, 1>, unknown, []>> : BuildTuple<Start, never, []> extends [...infer U, ...BuildTuple<Sum<End, 1>, unknown, []>] ? Exclude<([...U, ...BuildTuple<Sum<End, 1>, unknown, []>] & BuildTuple<Start, never, []>)[number], never> : PrivateIntRange<Start, Sum<End, 1>, Skip, Subtract<Skip, 1>, [...BuildTupl…IsNegative<Start> extends true ? PrivateNegativeIntRange<Start, Sum<End, 1>, Skip, IfNotAnyOrNever<Skip, { ifNot: _TupleOf<If<IsNegative<Skip>, 0, Skip>, unknown>; ifAny: unknown[]; ifNever: []; }> extends [] ? [unknown] : IfNotAnyOrNever<Skip, { ifNot: _TupleOf<If<IsNegative<Skip>, 0, Skip>, unknown>; ifAny: unknown[]; ifNever: []; }>, IfNotAnyOrNever<Subtract<Sum<End, 1>, Start>, { ifNot: _TupleOf<If<IsNegative<Subtract<Sum<End, 1>, Start>>, 0, Subtract<Sum<End, 1>, Start>>, unknown>; ifAny: unknown[]; ifNever: []; }>, IfNotAnyOrNever<Absolute<Start>, { ifNot: _TupleOf<If<IsNegative<Absolute…
type-fest · OptionalKeysOfBaseType extends unknown ? keyof { [Key in keyof BaseType as BaseType extends Record<Key, BaseType[Key]> ? never : Key]: never; } & keyof BaseType : neverType extends unknown ? keyof { [Key in keyof Type as IsOptionalKeyOf<Type, Key> extends false ? never : Key]: never; } & keyof Type : never
type-fest · ReadonlyKeysOfT extends unknown ? Exclude<keyof T, WritableKeysOf<T>> : neverType extends unknown ? keyof { [Key in keyof Type as IsReadonlyKeyOf<Type, Key> extends false ? never : Key]: never; } & keyof Type : never
type-fest · RequiredKeysOfBaseType extends unknown ? Exclude<keyof BaseType, OptionalKeysOf<BaseType>> : neverType extends unknown ? Exclude<keyof Type, OptionalKeysOf<Type>> : never
type-fest · WritableKeysOfT extends unknown ? keyof { [P in keyof T as IsEqual<{ [Q in P]: T[P]; }, { readonly [Q in P]: T[P]; }> extends false ? P : never]: never; } & keyof T : neverType extends unknown ? Exclude<keyof Type, ReadonlyKeysOf<Type>> : never
type-fest · ConditionalKeys{ [Key in keyof Base]-?: Base[Key] extends Condition ? IfNever<Base[Key], IfNever<Condition, Key, never>, Key> : never; }[keyof Base](Base extends UnknownArray ? TupleToObject<Base> : Base) extends infer _Base ? IfNotAnyOrNever<_Base, { ifNot: keyof { [Key in keyof _Base & {} as _ExtendsStrict<_Base[Key], Condition, { distributiveUnions: false; strictNever: true; strictAny: false; }> extends true ? Key : never]: never; }; ifAny: keyof _Base; }> : never
type-fest · ConditionalPick{ [P in ConditionalKeys<Base, Condition>]: Base[P]; }ConditionalKeys<Base, Condition> extends infer Keys ? IsNever<Keys> extends true ? never : Pick<Base, Keys & keyof Base> : never
type-fest · IsStringLiteralIsNever<T> extends true ? false : T extends string ? {} extends Record<T, never> ? false : true : falseIsAny<S> extends true ? false : IsNever<S> extends true ? false : _IsStringLiteral<CollapseLiterals<UnwrapBrand<S>>>
type-fest · IsSymbolLiteralIsNever<T> extends false ? [T] extends [symbol & infer U] ? [U] extends [symbol] ? [symbol] extends [U] ? false : true : false : false : falseIsAny<T> extends true ? false : IsNever<T> extends true ? false : _IsSymbolLiteral<CollapseLiterals<UnwrapBrand<T>>>
type-fest · LessThanOrEqualnumber extends A | B ? never : GreaterThan<A, B> extends true ? false : trueGreaterThan<A, B> extends infer Result ? Result extends true ? false : true : never
type-fest · SingleKeyObjectIsUnion<keyof ObjectType> extends true ? never : IfEmptyObject<ObjectType, never, ObjectType>IsUnion<keyof ObjectType> extends true ? never : If<IsEmptyObject<ObjectType>, never, ObjectType>
type-fest · FixedLengthArrayPick<ArrayPrototype, Exclude<keyof ArrayPrototype, ArrayLengthMutationKeys>> & { [index: number]: Element; readonly length: Length; [Symbol.iterator]: () => IterableIterator<Element>; }{ [KeyType in keyof TupleOf<Length, Element> as Filter<KeyType, number | "length" | ArrayLengthMutationKeys>]: TupleOf<Length, Element>[KeyType]; } & { readonly length: Length; } & (number extends Length ? { [n: number]: Element; } : {})
type-fest · IsBooleanLiteralIsNever<T> extends false ? [T] extends [boolean & infer U] ? [U] extends [boolean] ? [boolean] extends [U] ? false : true : false : false : falseIsAny<T> extends true ? false : IsNever<T> extends true ? false : _IsBooleanLiteral<CollapseLiterals<UnwrapBrand<T>>>
type-fest · IsNumericLiteral[LiteralCheck<T, number> | LiteralCheck<T, bigint>] extends [false] ? false : trueIsAny<T> extends true ? false : IsNever<T> extends true ? false : _IsNumericLiteral<CollapseLiterals<UnwrapBrand<T>>>
type-fest · LastArrayElementElements extends readonly [] ? ElementBeforeTailingSpreadElement : Elements extends readonly [...infer U, infer V] ? V : Elements extends readonly [infer U, ...infer V] ? LastArrayElement<V, U> : Elements extends readonly (infer U)[] ? ElementBeforeTailingSpreadElement | U : neverIsAny<TArray> extends true ? any : IsNever<TArray> extends true ? never : TArray extends UnknownArray ? SplitOnRestElement<TArray> extends readonly [infer BeforeRest extends UnknownArray, infer Rest extends UnknownArray, infer AfterRest extends UnknownArray] ? _LastArrayElement<BeforeRest, Rest, AfterRest> : never : never
type-fest · RequireAllOrNoneIsAny<ObjectType> extends true ? any : IsNever<ObjectType> extends true ? never : IfNever<KeysType, ObjectType, _RequireAllOrNone<ObjectType, IfAny<KeysType, keyof ObjectType, KeysType>>>IsAny<ObjectType> extends true ? any : IsNever<ObjectType> extends true ? never : If<IsNever<KeysType>, ObjectType, _RequireAllOrNone<ObjectType, If<IsAny<KeysType>, keyof ObjectType, KeysType>>>
type-fest · RequireOneOrNoneIsAny<ObjectType> extends true ? any : IsNever<ObjectType> extends true ? never : IfNever<KeysType, ObjectType, _RequireOneOrNone<ObjectType, IfAny<KeysType, keyof ObjectType, KeysType>>>IsAny<ObjectType> extends true ? any : IsNever<ObjectType> extends true ? never : If<IsNever<KeysType>, ObjectType, _RequireOneOrNone<ObjectType, If<IsAny<KeysType>, keyof ObjectType, KeysType>>>
type-fest · RequireAtLeastOneIsAny<ObjectType> extends true ? any : IsNever<ObjectType> extends true ? never : IfNever<KeysType, never, _RequireAtLeastOne<ObjectType, IfAny<KeysType, keyof ObjectType, KeysType>>>IsAny<ObjectType> extends true ? any : IsNever<ObjectType> extends true ? never : If<IsNever<KeysType>, never, _RequireAtLeastOne<ObjectType, If<IsAny<KeysType>, keyof ObjectType, KeysType>>>
type-fest · RequireExactlyOneIsAny<ObjectType> extends true ? any : IsNever<ObjectType> extends true ? never : IfNever<KeysType, never, _RequireExactlyOne<ObjectType, IfAny<KeysType, keyof ObjectType, KeysType>>>IsAny<ObjectType> extends true ? any : IsNever<ObjectType> extends true ? never : If<IsNever<KeysType>, never, _RequireExactlyOne<ObjectType, If<IsAny<KeysType>, keyof ObjectType, KeysType>>>
type-fest · GreaterThanOrEqualnumber extends A | B ? never : A extends B ? true : GreaterThan<A, B>number extends A | B ? boolean : A extends number ? B extends number ? A extends B ? true : GreaterThan<A, B> : never : never
type-fest · OverrideProperties{ [KeyType in keyof ({ [Key in keyof PickIndexSignature<TOriginal> as Key extends keyof PickIndexSignature<TOverride> ? never : Key]: PickIndexSignature<TOriginal>[Key]; } & PickIndexSignature<TOverride> & { [Key in keyof OmitIndexSignature<TOriginal> as Key extends keyof OmitIndexSignature<TOverride> ? never : Key]: OmitIndexSignature<TOriginal>[Key]; } & OmitIndexSignature<TOverride>)]: ({ [Key in keyof PickIndexSignature<TOriginal> as Key extends keyof PickIndexSignature<TOverride> ? never : Key]: PickIndexSignature<TOriginal>[Key]; } & PickIndexSignature<TOverride> & { [Key in keyof OmitIn…TOriginal extends unknown ? TOverride extends unknown ? If<IsEqual<TOriginal, TOverride>, TOriginal, { [KeyType in keyof ({ [KeyType in keyof ({ [Key in keyof PickIndexSignature<TOriginal> as Key extends keyof PickIndexSignature<TOverride> ? never : Key]: PickIndexSignature<TOriginal>[Key]; } & PickIndexSignature<TOverride>)]: ({ [Key in keyof PickIndexSignature<TOriginal> as Key extends keyof PickIndexSignature<TOverride> ? never : Key]: PickIndexSignature<TOriginal>[Key]; } & PickIndexSignature<TOverride>)[KeyType]; } & { [KeyType in keyof ({ [Key in keyof OmitIndexSignature<TOriginal> as Ke…
type-fest · ScreamingSnakeCaseValue extends string ? Uppercase<SnakeCase<Value, ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>>> : ValueValue extends string ? Uppercase<SnakeCase<Value, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>> : Value
type-fest · SetNonNullableDeepUnionToTuple<KeyPaths> extends [infer KeyPath, ...infer RestPaths] ? SetNonNullableDeepHelper<SetNonNullableDeepSinglePath<BaseType, KeyPath>, RestPaths> : BaseTypeIsAny<KeyPaths> extends true ? NonNullableDeep<BaseType> : SetNonNullableDeepHelper<BaseType, UnionToTuple<KeyPaths>>
type-fest · ConditionalPickDeep{ [KeyType in keyof { [Key in keyof Type]: AssertCondition<Type[Key], Condition, ApplyDefaultOptions<ConditionalPickDeepOptions, DefaultConditionalPickDeepOptions, Options>> extends true ? Type[Key] : IsPlainObject<Type[Key]> extends true ? ConditionalSimplifyDeep<{ [KeyType in keyof { [Key in keyof Type[Key]]: AssertCondition<Type[Key][Key], Condition, ApplyDefaultOptions<ConditionalPickDeepOptions, DefaultConditionalPickDeepOptions, Options>> extends true ? Type[Key][Key] : IsPlainObject<Type[Key][Key]> extends true ? ConditionalSimplifyDeep<{ [KeyType in keyof { [Key in keyof Type[Key][Key]…ConditionalSimplifyDeep<{ [KeyType in keyof { [Key in keyof Type]: AssertCondition<Type[Key], Condition, ApplyDefaultOptions<ConditionalPickDeepOptions, DefaultConditionalPickDeepOptions, Options>> extends true ? Type[Key] : IsPlainObject<Type[Key]> extends true ? ConditionalSimplifyDeep<{ [KeyType in keyof { [Key in keyof Type[Key]]: AssertCondition<Type[Key][Key], Condition, ApplyDefaultOptions<ConditionalPickDeepOptions, DefaultConditionalPickDeepOptions, Options>> extends true ? Type[Key][Key] : IsPlainObject<Type[Key][Key]> extends true ? ConditionalSimplifyDeep<{ [KeyType in keyof { [Key…
type-fest · CamelCasedPropertiesValue extends Function ? Value : Value extends (infer U)[] ? Value : { [K in keyof Value as CamelCase<K, ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>>]: Value[K]; }Value extends Function ? Value : Value extends (infer U)[] ? Value : { [K in keyof Value as CamelCase<K, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>>]: Value[K]; }
type-fest · KebabCasedPropertiesValue extends Function ? Value : Value extends (infer U)[] ? Value : { [K in keyof Value as DelimiterCase<K, "-", IfAny<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, IfNever<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, { [KeyType in keyof ({ [KeyType in keyof ({} & PickIndexSignature<{ [Key in keyof ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options> as Key extends "splitOnNumbers" ? Extract<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>[Key], …Value extends Function ? Value : Value extends (infer U)[] ? Value : { [K in keyof Value as DelimiterCase<K, "-", ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>>]: Value[K]; }
type-fest · SnakeCasedPropertiesValue extends Function ? Value : Value extends (infer U)[] ? Value : { [K in keyof Value as DelimiterCase<K, "_", IfAny<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, IfNever<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, { [KeyType in keyof ({ [KeyType in keyof ({} & PickIndexSignature<{ [Key in keyof ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options> as Key extends "splitOnNumbers" ? Extract<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>[Key], …Value extends Function ? Value : Value extends (infer U)[] ? Value : { [K in keyof Value as DelimiterCase<K, "_", ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>>]: Value[K]; }
type-fest · PascalCasedPropertiesValue extends Function ? Value : Value extends (infer U)[] ? Value : { [K in keyof Value as PascalCase<K, ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>>]: Value[K]; }Value extends Function ? Value : Value extends (infer U)[] ? Value : { [K in keyof Value as PascalCase<K, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>>]: Value[K]; }
type-fest · SharedUnionFieldsDeepApplyDefaultOptions<SharedUnionFieldsDeepOptions, DefaultSharedUnionFieldsDeepOptions, Options> extends infer OptionsWithDefaults extends Required<SharedUnionFieldsDeepOptions> ? [Union] extends [ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | NonRecursiveType] ? Union : [Union] extends [UnknownArray] ? OptionsWithDefaults["recurseIntoArrays"] extends true ? SetArrayAccess<SetArrayAccess<InternalSharedArrayUnionFieldsDeep<Union, OptionsWithDefaults, []>, IfNever<Union, false, Union extends unknown[] ? false : true>>, IsArrayReadonly<Union>> : Union : [Union] extends [object] ? SharedObj…ApplyDefaultOptions<SharedUnionFieldsDeepOptions, DefaultSharedUnionFieldsDeepOptions, Options> extends infer OptionsWithDefaults extends Required<SharedUnionFieldsDeepOptions> ? [Union] extends [ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | NonRecursiveType] ? Union : [Union] extends [UnknownArray] ? OptionsWithDefaults["recurseIntoArrays"] extends true ? SetArrayAccess<SetArrayAccess<InternalSharedArrayUnionFieldsDeep<Union, OptionsWithDefaults, []>, If<IsNever<Union>, false, Union extends unknown[] ? false : true>>, IsArrayReadonly<Union>> : Union : [Union] extends [object] ? Share…
type-fest · FindGlobalInstanceTypeName extends string ? typeof globalThis extends Record<Name, abstract new (...arguments: any[]) => infer T> ? T : never : neverName extends string ? typeof globalThis extends Record<Name, abstract new (...arguments_: any[]) => infer T> ? T : never : never
type-fest · PartialOnUndefinedDeepT extends Record<any, any> | undefined ? { [KeyType in keyof T as undefined extends T[KeyType] ? IfUnknown<T[KeyType], never, KeyType> : never]?: PartialOnUndefinedDeepValue<T[KeyType], ApplyDefaultOptions<PartialOnUndefinedDeepOptions, DefaultPartialOnUndefinedDeepOptions, Options>> | undefined; } extends infer U ? { [KeyType in keyof ({ [Key in keyof PickIndexSignature<{ [KeyType in keyof T as KeyType extends keyof { [K in keyof U as IsLiteral<K> extends true ? K : never]-?: never; } ? never : KeyType]: PartialOnUndefinedDeepValue<T[KeyType], ApplyDefaultOptions<PartialOnUndefinedDeepOptions…T extends Record<any, any> | undefined ? { [KeyType in keyof T as undefined extends T[KeyType] ? If<IsUnknown<T[KeyType]>, never, KeyType> : never]?: PartialOnUndefinedDeepValue<T[KeyType], ApplyDefaultOptions<PartialOnUndefinedDeepOptions, DefaultPartialOnUndefinedDeepOptions, Options>> | undefined; } extends infer U ? Merge<{ [KeyType in keyof T as KeyType extends keyof { [K in keyof U as IfNotAnyOrNever<K, { ifNot: _IsLiteral<CollapseLiterals<IfNotAnyOrNever<K, { ifNot: _UnwrapBrand<K, Primitive>; }>>>; ifAny: false; ifNever: false; }> extends true ? K : never]-?: never; } ? never : KeyType…
type-fest · CamelCasedPropertiesDeepValue extends NonRecursiveType ? Value : Value extends UnknownArray ? CamelCasedPropertiesArrayDeep<Value, ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>> : Value extends Set<infer U> ? Set<_CamelCasedPropertiesDeep<U, ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>>> : Value extends object ? { [K in keyof Value as CamelCase<K, ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>>]: _CamelCasedPropertiesDeep<Value[K], ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>>; } : ValueValue extends NonRecursiveType ? Value : Value extends UnknownArray ? CamelCasedPropertiesArrayDeep<Value, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>> : Value extends Set<infer U> ? Set<_CamelCasedPropertiesDeep<U, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>>> : Value extends object ? { [K in keyof Value as CamelCase<K, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>>]: _CamelCasedPropertiesDeep<Value[K], ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>>; } : Value
type-fest · DelimiterCasedPropertiesValue extends Function ? Value : Value extends (infer U)[] ? Value : { [K in keyof Value as DelimiterCase<K, Delimiter, ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>>]: Value[K]; }Value extends Function ? Value : Value extends (infer U)[] ? Value : { [K in keyof Value as DelimiterCase<K, Delimiter, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>]: Value[K]; }
type-fest · KebabCasedPropertiesDeepValue extends NonRecursiveType ? Value : Value extends UnknownArray ? DelimiterCasedPropertiesArrayDeep<Value, "-", IfAny<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, IfNever<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, { [KeyType in keyof ({ [KeyType in keyof ({} & PickIndexSignature<{ [Key in keyof ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options> as Key extends "splitOnNumbers" ? Extract<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>[Key]…Value extends NonRecursiveType ? Value : Value extends UnknownArray ? DelimiterCasedPropertiesArrayDeep<Value, "-", ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>> : Value extends Set<infer U> ? Set<_DelimiterCasedPropertiesDeep<U, "-", ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>>> : Value extends object ? { [K in…
type-fest · SnakeCasedPropertiesDeepValue extends NonRecursiveType ? Value : Value extends UnknownArray ? DelimiterCasedPropertiesArrayDeep<Value, "_", IfAny<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, IfNever<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>, { splitOnNumbers: false; }, { [KeyType in keyof ({ [KeyType in keyof ({} & PickIndexSignature<{ [Key in keyof ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options> as Key extends "splitOnNumbers" ? Extract<ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>[Key]…Value extends NonRecursiveType ? Value : Value extends UnknownArray ? DelimiterCasedPropertiesArrayDeep<Value, "_", ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>> : Value extends Set<infer U> ? Set<_DelimiterCasedPropertiesDeep<U, "_", ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>>> : Value extends object ? { [K in…
type-fest · PascalCasedPropertiesDeepValue extends Function | RegExp | Date ? Value : Value extends (infer U)[] ? _PascalCasedPropertiesDeep<U, ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>>[] : Value extends Set<infer U> ? Set<_PascalCasedPropertiesDeep<U, ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>>> : Value extends object ? { [K in keyof Value as _PascalCase<K, IfAny<ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>, DefaultCamelCaseOptions, IfNever<ApplyDefaultOptions<CamelCaseOptions, DefaultCamelCaseOptions, Options>, DefaultCamelCaseOptions, { [Key…Value extends Function | RegExp | Date ? Value : Value extends (infer U)[] ? _PascalCasedPropertiesDeep<U, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>>[] : Value extends Set<infer U> ? Set<_PascalCasedPropertiesDeep<U, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>>> : Value extends object ? { [K in keyof Value as _PascalCase<K, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, ApplyDefaultOptions<CamelCaseOptions, _DefaultCamelCaseOptions, Options>>>]: _PascalCasedPropertiesDeep<Value[K], ApplyDefaultOptions<CamelCaseOptions…
type-fest · ConditionalPickDeepOptions{ condition?: "extends" | "equality" | undefined; }{ condition?: "equality" | "extends" | undefined; }
type-fest · DelimiterCasedPropertiesDeepValue extends NonRecursiveType ? Value : Value extends UnknownArray ? DelimiterCasedPropertiesArrayDeep<Value, Delimiter, ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>> : Value extends Set<infer U> ? Set<_DelimiterCasedPropertiesDeep<U, Delimiter, ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>>> : Value extends object ? { [K in keyof Value as DelimiterCase<K, Delimiter, ApplyDefaultOptions<WordsOptions, { splitOnNumbers: false; }, Options>>]: _DelimiterCasedPropertiesDeep<Value[K], Delimiter, ApplyDefaultOptions<WordsOptions, { splitOnNumbers: f…Value extends NonRecursiveType ? Value : Value extends UnknownArray ? DelimiterCasedPropertiesArrayDeep<Value, Delimiter, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>> : Value extends Set<infer U> ? Set<_DelimiterCasedPropertiesDeep<U, Delimiter, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>> : Value extends object ? { [K in keyof Value as DelimiterCase<K, Delimiter, ApplyDefaultOptions<WordsOptions, { splitOnPunctuation: false; splitOnNumbers: false; }, Options>>]: _DelimiterCasedProperti…

Thành viên lớp hoặc interface bị xóa

Không phát hiện.

Thành viên lớp hoặc interface thay đổi

Không phát hiện.

Mới bị ngừng hỗ trợ

export@deprecated
type-fest · IfAnyThis type will be removed in the next major version. Use the {@link If} type instead.
type-fest · IfNullThis type will be removed in the next major version. Use the {@link If} type instead.
type-fest · IfNeverThis type will be removed in the next major version. Use the {@link If} type instead.
type-fest · IfUnknownThis type will be removed in the next major version. Use the {@link If} type instead.
type-fest · IfEmptyObjectThis type will be removed in the next major version. Use the {@link If} type instead.
type-fest · ReadonlyTupleThis type will be removed in the next major version. Use the built-in `Readonly` type in combination with the {@link TupleOf} type instead, like `Readonly<TupleOf<Length, Element>>`.

Thay đổi yêu cầu (engines, phụ thuộc peer)

TrướcSau
engines.node>=16>=20
Export mới (67)
importexportkind
type-festIftype
type-festXortype
type-festOrAlltype
type-festAndAlltype
type-festIsUniontype
type-festTupleOftype
type-festAbsolutetype
type-festOptionaltype
type-festUnionMaxtype
type-festAllExtendtype
type-festGetOptionstype
type-festIsNullabletype
type-festIsOptionaltype
type-festRenameKeystype
type-festSomeExtendtype
type-festArrayLengthtype
type-festIsLowercasetype
type-festIsUndefinedtype
type-festIsUppercasetype
type-festKeyAsStringtype
type-festObjectMergetype
type-festUnionLengthtype
type-festUnionMembertype
type-festAlphanumerictype
type-festArrayElementtype
type-festArrayReversetype
type-festPathsOptionstype
type-festRemovePrefixtype
type-festRemoveSuffixtype
type-festSplitOptionstype
type-festStringLengthtype
type-festWordsOptionstype
type-festExceptOptionstype
type-festExcludeStricttype
type-festExtendsStricttype
type-festExtractStricttype
type-festStringToArraytype
type-festUnwrapPartialtype
type-festDigitCharactertype
type-festExcludeExactlytype
type-festExclusifyUniontype
type-festExtractExactlytype
type-festIsTupleOptionstype
type-festReplaceOptionstype
type-festStringToNumbertype
type-festUnwrapRequiredtype
type-festIsOptionalKeyOftype
type-festIsReadonlyKeyOftype
type-festIsRequiredKeyOftype
type-festIsWritableKeyOftype
type-festLowercaseLettertype
type-festNonNullableDeeptype
type-festUppercaseLettertype
type-festAllExtendOptionstype
type-festCamelCaseOptionstype
type-festSomeExtendOptionstype
type-festExcludeRestElementtype
type-festExtractRestElementtype
type-festSplitOnRestElementtype
type-festConditionalSimplifytype
type-festRemovePrefixOptionstype
type-festRemoveSuffixOptionstype
type-festSetFieldTypeOptionstype
type-festExtendsStrictOptionstype
type-festStringToArrayOptionstype
type-festConditionalSimplifyDeeptype
type-festSharedUnionFieldsDeepOptionstype

Câu hỏi thường gặp

Nâng cấp type-fest từ 4 lên 5 có những thay đổi không tương thích nào?

Giữa type-fest 4.41.0 và 5.10.0, Vigia tìm thấy 7 export bị xóa, 83 chữ ký thay đổi và 0 thành viên lớp hoặc interface bị xóa hay thay đổi.

Những gì bị ngừng hỗ trợ trong type-fest 5?

6 export hoặc thành viên mới bị đánh dấu ngừng hỗ trợ trong type-fest 5.10.0.

Dành cho tác tử

GET https://vigia.coredls.cloud/v1/packages/npm/type-fest/upgrade?from=4.41.0&to=5.10.0