Have ideas to improve npm?Join in the discussion! ¬Ľ

    ts-type
    TypeScript icon, indicating that this package has built-in type declarations

    1.2.34¬†‚Äʬ†Public¬†‚Äʬ†Published

    README

    add some typescript type and re-export some build-in typescript type
    

    see index.d.ts

    install

    npm install ts-type

    demo

    ITSOverwrite

    export interface A1
    {
        s: string
    }
     
    export type A2 = ITSOverwrite<A1, {
        s: number,
    }>
    export declare let a2: A2;
    // a2.s is number

    ITSOverwriteReturnType

    import { ITSOverwriteReturnType } from '..';
     
    declare function f(a: number): number
     
    declare let c: ITSOverwriteReturnType<typeof f, string>;
    // c is (a: number) => string
    // c(1).toUpperCase()

    Promise / Bluebird / PromiseLike

    npm install @types/bluebird ts-type
    export declare function p1(a: number): Promise<number>
     
    export declare let p1_v: ITSUnpackedReturnType<typeof p1>;
     
    p1_v.toFixed()
     
    export declare let p2: ITSWrapFunctionPromise<typeof p1>;
    export declare let p3: ITSWrapFunctionBluebird<typeof p2>;
    export declare let p4: ITSWrapFunctionBluebird<typeof p1>;
     
    p2(1).then(v => v.toFixed())
    p3(1).then(v => v.toFixed())
    p4(1).then(v => v.toFixed())

    this

    export declare function t1(this: string, a: number): Promise<number>
     
    export declare let t1_this: ITSUnpackedThisFunction<typeof t1>;
     
    // => t1_this is string
    export declare function t2(this: string, a: number): number
     
    export declare let t3: ITSOverwriteThisFunction<number, typeof t2>;
     
    t3 = function ()
    {
        this.toFixed() // => this is number
     
        return 1
    }
    interface Function2 extends Function
    {
        bind<T extends any, F extends (...args: any[]) => any>(this: F, thisArg: T, ...argArray: any[]): ITSOverwriteThisFunction<T, F>;
    }
     
    export interface t4 extends Function2
    {
        (): string
    }
     
    export declare let t5: t4
     
    export let t6 = t5.bind([] as string[])
     
    t6 = function ()
    {
        this.includes('') // => this is string[]
     
        return ''
    }

    other

    docs

    links

    Install

    npm i ts-type

    DownloadsWeekly Downloads

    6,483

    Version

    1.2.34

    License

    ISC

    Unpacked Size

    369 kB

    Total Files

    73

    Last publish

    Collaborators

    • avatar