0.2.0 • Published 5 years ago
@pansy/types v0.2.0
TypeScript >= 3.4
🏗 安装
# npm install
$ npm install @pansy/types --save
# yarn install
$ yarn add @pansy/types🔨 使用
import { NonUndefined } from '@pansy/types';
type FooWithoutRainbow = NonUndefined<string | null | undefined>;
//=> string | null目录
- 内置类型
Partial<T>将T中所有的属性设为可选 v2.1Readonly<T>将T中所有的属性设为只读 v2.1Pick<T,K>从T中过滤出属性Kv2.1Record<T,K>标记对象的 key value类型 v2.1Exclude<T,U>从T可分配给的类型中排除Uv2.8Extract<T,U>从T可分配给的类型中提取Uv2.8NonNullable<T>从T中排除null和undefinedv2.8ReturnType获取函数类型T的返回类型 v2.8InstanceType获取构造函数类型T的实例类型 v2.8Required<T>将T中所有的属性设为必填Parameters<T>获取一个函数的所有参数类型 v3.6ConstructorParameters<T>获取构造函数的所有参数类型 v3.6Omit<T,K>通过从T选取所有属性然后删除K来构造类型 v3.5Uppercase<S>将字符串中的每个字符转换为大写 v4.1Lowercase<S>将字符串中的每个字符转换为小写 v4.1Capitalize<S>-将字符串中的第一个字符转换为大写 v4.1Uncapitalize<S>将字符串中的第一个字符转换为小写 v4.1
Partial<T>
将T中所有的属性设为可选。
interface NodeConfig {
appName: string;
port: number;
}
// Expect: { appName?: string; port?: number; }
Partial<NodeConfig>;Readonly<T>
将T中所有的属性设为只读。
interface NodeConfig {
appName: string;
port?: number;
}
// Expect: { readonly appName: string; readonly port?: number; }
Readonly<NodeConfig>;Pick<T, K>
从 T 中过滤出属性 K。
interface NodeConfig {
name: string;
appName: string;
port?: number;
}
// Expect: { name: string; }
Pick<NodeConfig, 'name'>;Record<T,K>
标记对象的 key value类型。
// Expect: { [key: string]: number; }
Record<string, number>;Exclude<T,U>
从T可分配给的类型中排除U。
// Expect: 'b' | 'd'
Exclude<"a" | "b" | "c" | "d", "a" | "c" | "f">;Extract<T,U>
从T可分配给的类型中提取U。
// Expect: 'a' | 'c'
Extract<"a" | "b" | "c" | "d", "a" | "c" | "f">;NonNullable<T>
从T中排除null和undefined。
// Expect: string
NonNullable<string | null | undefined>;ReturnType<T>
获取函数类型T的返回类型。
// Expect: string
ReturnType<() => string>;InstanceType<T>
获取构造函数类型T的实例类型。
class C {
x = 0;
y = 0;
}
// Expect: C
InstanceType<typeof C>;Required<T>
将T中所有的属性设为必填。
interface NodeConfig {
appName?: string;
port?: number;
}
// Expect: { appName: string; port: number; }
Required<NodeConfig>;Parameters<T>
获取一个函数的所有参数类型。
function shuffle(input: string, input1: number): void {}
// Expect: { input: string; input1: number; }
Parameters<typeof shuffle>;ConstructorParameters<T>
获取构造函数的所有参数类型
class A {
constructor(input: string, input1: number) {}
}
// Expect: { input: string; input1: number; }
ConstructorParameters<typeof A>;Omit<T,K>
通过从T选取所有属性然后删除K来构造类型。
interface Animal {
imageUrl: string;
species: string;
images: string[];
paragraphs: string[];
}
// Expect: { images: string[]; paragraphs: string[]; }
Omit<Animal, 'imageUrl' | 'species'>;Uppercase<S>
将字符串中的每个字符转换为大写
// Expect: 'HELLO'
Uppercase<'hello'>;Lowercase<S>
将字符串中的每个字符转换为小写
// Expect: 'hello'
Uppercase<'HELLO'>;Capitalize<S>
将字符串中的第一个字符转换为大写
// Expect: 'Hello'
Capitalize<'hello'>;Uncapitalize<S>
将字符串中的第一个字符转换为小写
// Expect: 'hello'
Uncapitalize<'Hello'>;