@pansy/types

<h1 align="center"> @pansy/types </h1>

Usage no npm install needed!

<script type="module">
  import pansyTypes from 'https://cdn.skypack.dev/@pansy/types';
</script>

README

@pansy/types

实用的类型集合

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中所有的属性设为可选。

示例
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中排除nullundefined

示例
// 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'>;

⇧ 回到目录