Files
NapCatQQ/.pnpm-store/v3/files/ae/6ab971d8da87820536c2e68c6b122349f63bcc00688ed9095895458d70e403298875d5f25c95562ff9fbb67dc983260e53544f656a775fc7a3049b56cf2590
TanTan e311ca3275
Build NapCat Artifacts / Windows Loader Test (push) Canceled after 0s
Build NapCat Artifacts / Type Check & Test (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Framework (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Shell (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

24 lines
1.1 KiB
Plaintext

import { CreateType } from '../create/type.mjs';
import { Union } from '../union/index.mjs';
import { ExtendsCheck, ExtendsResult } from './extends-check.mjs';
import { ExtendsFromMappedKey } from './extends-from-mapped-key.mjs';
import { ExtendsFromMappedResult } from './extends-from-mapped-result.mjs';
// ------------------------------------------------------------------
// TypeGuard
// ------------------------------------------------------------------
import { IsMappedKey, IsMappedResult } from '../guard/kind.mjs';
// prettier-ignore
function ExtendsResolve(left, right, trueType, falseType) {
const R = ExtendsCheck(left, right);
return (R === ExtendsResult.Union ? Union([trueType, falseType]) :
R === ExtendsResult.True ? trueType :
falseType);
}
/** `[Json]` Creates a Conditional type */
export function Extends(L, R, T, F, options) {
// prettier-ignore
return (IsMappedResult(L) ? ExtendsFromMappedResult(L, R, T, F, options) :
IsMappedKey(L) ? CreateType(ExtendsFromMappedKey(L, R, T, F, options)) :
CreateType(ExtendsResolve(L, R, T, F), options));
}