mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-22 05:59:31 +08:00
37 lines
972 B
TypeScript
37 lines
972 B
TypeScript
function logical(values: string[], present: string): void {
|
|
let value = values[0];
|
|
if (!value) return;
|
|
const read = () => console.log((present && value)?.length);
|
|
value = values.slice(1)[0];
|
|
read();
|
|
}
|
|
|
|
function conditional(values: string[], present: boolean): void {
|
|
let value = values[0];
|
|
if (!value) return;
|
|
const read = () => console.log((present ? value : value)?.length);
|
|
value = values.slice(1)[0];
|
|
read();
|
|
}
|
|
|
|
function multipleArms(values: (string | number)[]): void {
|
|
let value = values[0];
|
|
if (!value) return;
|
|
value = 1 as unknown as string;
|
|
const read = () => console.log(value.length);
|
|
read();
|
|
}
|
|
|
|
function commaCall(callbacks: (() => void)[], mark: () => void): void {
|
|
let callback = callbacks[0];
|
|
if (!callback) return;
|
|
const call = () => (mark(), callback)();
|
|
callback = callbacks.slice(1)[0];
|
|
call();
|
|
}
|
|
|
|
logical(["first"], "yes");
|
|
conditional(["first"], true);
|
|
multipleArms(["first"]);
|
|
commaCall([() => {}], () => {});
|