ts-type

TypeScript 類型工具庫:提供豐富的類型操作工具和重新導出的內建類型 / TypeScript type utility library: provides rich type manipulation utilities and re-exported built-in types

ISC 70 个版本
安装
npm install ts-type
yarn add ts-type
pnpm add ts-type
bun add ts-type
README

ts-type

TypeScript 類型工具庫 / TypeScript Type Utility Library

提供豐富的 TypeScript 類型操作工具和重新導出的內建類型,支援雙語註解(繁體中文 + 英文)。

Provides rich TypeScript type manipulation utilities and re-exported built-in types with bilingual comments (Traditional Chinese + English).

see index.d.ts

安裝 / Installation

# npm
npm install ts-type

# yarn
yarn add ts-type

# pnpm
pnpm add ts-type

範例 / Examples

ITSOverwrite

export interface A1
{
	s: string
}

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

ITSOverwriteReturnType

覆寫函數返回值類型 / Overwrite function return type

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

Promise 相關類型操作 / Promise related type operations

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 類型操作 / this Type Operations

操作函數的 this 類型 / Manipulate function's this type

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 ''
}

文檔 / Documentation

詳細的類型工具說明文件請參閱 docs/ 目錄。

For detailed type utility documentation, see the docs/ directory.

分類指南 / Category Guide

文件與教學 / Documentation & Tutorials

版本列表
3.0.13 2026-03-31
3.0.12 2026-03-28
3.0.10 2026-03-15
3.0.8 2026-03-07
3.0.7 2026-03-07
3.0.5 2026-03-07
3.0.3 2026-03-07
3.0.2 2026-03-07
3.0.1 2022-10-10
2.1.10 2022-08-10
2.1.9 2022-08-10
2.1.8 2022-07-06
2.1.7 2022-07-05
2.1.6 2022-03-12
2.1.5 2022-02-26
2.1.4 2022-01-12
2.1.2 2021-12-04
2.1.1 2021-12-04
2.0.3 2021-11-28
2.0.1 2021-11-20
1.2.40 2021-08-31
1.2.39 2021-07-20
1.2.38 2021-07-19
1.2.37 2021-07-19
1.2.36 2021-07-16
1.2.35 2021-06-15
1.2.34 2020-09-04
1.2.33 2020-09-04
1.2.32 2020-07-31
1.2.31 2020-07-28
1.2.30 2020-07-27
1.2.29 2020-07-26
1.2.28 2020-07-26
1.2.27 2020-07-26
1.2.26 2020-07-26
1.2.25 2020-07-09
1.2.24 2020-07-05
1.2.23 2020-06-11
1.2.22 2020-06-11
1.2.21 2020-06-11
1.2.20 2020-06-11
1.2.19 2020-06-11
1.2.18 2020-06-11
1.2.17 2020-06-01
1.2.16 2020-05-05
1.2.15 2020-03-31
1.2.13 2020-01-24
1.2.12 2019-12-27
1.2.11 2019-12-27
1.2.10 2019-12-26
1.2.9 2019-06-12
1.2.8 2019-06-11
1.2.7 2019-06-11
1.2.6 2019-06-09
1.2.4 2019-06-08
1.2.3 2019-06-07
1.2.2 2019-05-31
1.2.1 2019-05-17
1.1.3 2018-11-29
1.1.2 2018-11-29
1.1.1 2018-11-27
1.1.0 2018-11-24
1.0.9 2018-11-23
1.0.8 2018-11-20
1.0.7 2018-11-16
1.0.6 2018-11-15
1.0.5 2018-11-15
1.0.4 2018-11-15
1.0.1 2018-11-15
1.0.0 2018-11-15