This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { | |
A, | |
F, | |
B, | |
O, | |
I, | |
} from 'ts-toolbelt'; | |
type OnlyUserKeys<O> = | |
O extends L.List |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
mkdir -p out | |
npx tsc src/index.ts -d --emitDeclarationOnly --module amd --outFile out/index.d.ts && | |
echo " | |
declare module '<npm package name>' { | |
import main = require('index'); | |
export = main; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import {Object, Tuple, Number} from 'ts-toolbelt' | |
// Merge two types together | |
type merge = Object.MergeUp<{name: string}, {age?: number}> | |
// Update the type of a field | |
type update = Object.Update<{age: string}, 'age', number> | |
// Make some fields optional | |
type optional = Object.Optional<{name: string, age: number}, 'age'> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"lastUpload":"2020-08-16T14:05:01.885Z","extensionVersion":"v3.4.3"} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import {Any, Number} from 'ts-toolbelt' | |
/** 512000 Minus Operations | |
* 80 * 80 * 80 Operations | |
* ~ 10 240 000 Iterations | |
* ~ 1.30sec | |
* @ 3.80GHz | |
* [email protected] | |
*/ | |
type test = NestNestTest<'-20'> // 1.3s |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
declare function curry<F extends (...args: any) => any>(f: F): void | |
class Test { | |
a?: string | |
b?: object | |
c?: number | |
d?: [string, Test] | |
e?: [object, Test] | |
f?: [number, Test] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type Head<T extends any[]> = | |
T extends [any, ...any[]] | |
? T[0] | |
: never | |
type Tail<T extends any[]> = | |
((...t: T) => any) extends ((_: any, ...tail: infer TT) => any) | |
? TT | |
: [] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type Head<T extends any[]> = | |
T extends [any, ...any[]] | |
? T[0] | |
: never | |
type Tail<T extends any[]> = | |
((...t: T) => any) extends ((_: any, ...tail: infer TT) => any) | |
? TT | |
: [] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type Head<T extends any[]> = | |
T extends [any, ...any[]] | |
? T[0] | |
: never | |
type Tail<T extends any[]> = | |
((...t: T) => any) extends ((_: any, ...tail: infer TT) => any) | |
? TT | |
: [] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type Head<T extends any[]> = | |
T extends [any, ...any[]] | |
? T[0] | |
: never | |
type Tail<T extends any[]> = | |
((...t: T) => any) extends ((_: any, ...tail: infer TT) => any) | |
? TT | |
: [] |