类型体操

在线刷 Type Challenges, 共 190 道题,浏览器内实时 TypeScript 类型检查。

🔥 Warm 1🟢 Easy 13🟡 Medium 103🟠 Hard 56🔴 Extreme 17
0 / 190 已通过
#2Medium

Get Return Type

获取函数返回类型

#infer#built-in
#3Medium

Omit

实现 Omit

#union#built-in
#4Easy

Pick

实现 Pick

#union#built-in
#5Extreme

Get Readonly Keys

获取只读属性

#utils#object-keys
#6Hard

Simple Vue

简单的 Vue 类型

#this#application#vue
#7Easy

Readonly

对象属性只读

#built-in#readonly#object-keys
#8Medium

Readonly 2

对象部分属性只读

#readonly#object-keys
#9Medium

Deep Readonly

对象属性只读(递归)

#readonly#object-keys#deep
#10Medium

Tuple to Union

元组转合集

#infer#tuple#union
#11Easy

Tuple to Object

元组转换为对象

#object-keys
#12Medium

Chainable Options

可串联构造器

#application
#13Warm

Hello World

#14Easy

First of Array

第一个元素

#array
#15Medium

Last of Array

最后一个元素

#array
#16Medium

Pop

排除最后一项

#array
#17Hard

Currying 1

柯里化 1

#array
#18Easy

Length of Tuple

获取元组长度

#tuple
#20Medium

Promise.all

#array#promise
#43Easy

Exclude

实现 Exclude

#built-in#union
#55Hard

Union to Intersection

联合类型转化为交叉类型

#utils#infer
#57Hard

Get Required

获得必需的属性

#utils#infer
#59Hard

Get Optional

获得可选属性

#utils#infer
#62Medium

Type Lookup

查找类型

#union#map
#89Hard

Required Keys

必需的键

#utils
#90Hard

Optional Keys

可选类型的键

#utils
#106Medium

Trim Left

去除左侧空白

#template-literal
#108Medium

Trim

去除两端空白字符

#template-literal
#110Medium

Capitalize

#template-literal
#112Hard

Capitalize Words

#template-literal
#114Hard

CamelCase

#template-literal
#116Medium

Replace

#template-literal
#119Medium

ReplaceAll

#template-literal
#147Hard

C-printf Parser

#template-literal
#151Extreme

Query String Parser

#template-literal
#189Easy

Awaited

#promise#built-in
#191Medium

Append Argument

追加参数

#arguments
#213Hard

Vue Basic Props

#vue#application
#216Extreme

Slice

#array
#223Hard

IsAny

#utils
#268Easy

If

#utils
#270Hard

Typed Get

#utils#template-literal
#274Extreme

Integers Comparator

#template-literal#math
#296Medium

Permutation

#union
#298Medium

Length of String

#template-literal
#300Hard

String to Number

#template-literal
#399Hard

Tuple Filter

#tuple#infer
#459Medium

Flatten

#array
#462Extreme

Currying 2

柯里化 2

#472Hard

Tuple to Enum Object

#tuple#template-literal
#476Extreme

Sum

#math#template-literal
#517Extreme

Multiply

#math#template-literal
#527Medium

Append to object

#object-keys
#529Medium

Absolute

#math#template-literal
#531Medium

String to Union

#union#string
#533Easy

Concat

#array
#545Hard

printf

#template-literal
#553Hard

Deep object to unique

#deep
#599Medium

Merge

#object
#612Medium

KebabCase

#template-literal
#645Medium

Diff

#object
#651Hard

Length of String 2

#template-literal
#697Extreme

Tag

#730Hard

Union to Tuple

#union#tuple#infer
#734Extreme

Inclusive Range

#infer#array
#741Extreme

Sort

#infer#array
#847Hard

String Join

#869Extreme

DistributeUnions

#898Easy

Includes

#array
#925Extreme

Assert Array Index

#array
#949Medium

AnyOf

#array
#956Hard

DeepPick

#deep
#1042Medium

IsNever

#union#utils
#1097Medium

IsUnion

#union
#1130Medium

ReplaceKeys

#object-keys
#1290Hard

Pinia

#this#vue
#1367Medium

Remove Index Signature

#object-keys
#1383Hard

Camelize

#union#recursion
#1978Medium

Percentage Parser

#template-literal
#2059Hard

Drop String

#template-literal#infer
#2070Medium

Drop Char

#template-literal#infer
#2257Medium

MinusOne

#math
#2595Medium

PickByType

#object
#2688Medium

StartsWith

#template-literal
#2693Medium

EndsWith

#template-literal
#2757Medium

PartialByKeys

#object
#2759Medium

RequiredByKeys

#object
#2793Medium

Mutable

#readonly#object-keys
#2822Hard

Split

#string#split#array
#2828Hard

ClassPublicKeys

#utils
#2852Medium

OmitByType

#object
#2857Hard

IsRequiredKey

#utils
#2946Medium

ObjectEntries

#object
#2949Hard

ObjectFromEntries

#object
#3057Easy

Push

#array
#3060Easy

Unshift

#array
#3062Medium

Shift

#array
#3188Medium

Tuple to Nested Object

#object#tuple
#3192Medium

Reverse

#tuple
#3196Medium

Flip Arguments

#arguments
#3243Medium

FlattenDepth

#array
#3312Easy

Parameters

#infer#tuple#built-in
#3326Medium

BEM style string

#template-literal#union#tuple
#3376Hard

InorderTraversal

#object
#4037Hard

IsPalindrome

#string
#4179Medium

Flip

#object
#4182Medium

Fibonacci Sequence

斐波那契序列

#4260Medium

AllCombinations

#template-literal#infer#union
#4425Medium

Greater Than

#array
#4471Medium

Zip

#tuple
#4484Medium

IsTuple

#tuple
#4499Medium

Chunk

#tuple
#4518Medium

Fill

#tuple
#4803Medium

Trim Right

#template-literal
#5117Medium

Without

去除数组指定元素

#union#array
#5140Medium

Trunc

#template-literal
#5153Medium

IndexOf

#array
#5181Hard

Mutable Keys

#utils
#5310Medium

Join

#array
#5317Medium

LastIndexOf

LastIndexOf

#array
#5360Medium

Unique

Unique

#array
#5423Hard

Intersection

#union#array
#5821Medium

MapTypes

#map#object#utils
#6141Hard

Binary to Decimal

#math
#6228Extreme

JSON Parser

#7258Hard

Object Key Paths

#object-keys
#7544Medium

Construct Tuple

#tuple
#7561Extreme

Subtract

#tuple
#8640Medium

Number Range

#8767Medium

Combination

#array#application#string
#8804Hard

Two Sum

两数之和

#array#math
#8987Medium

Subsequence

#union
#9142Medium

CheckRepeatedChars

CheckRepeatedChars

#union#string
#9155Hard

ValidDate

#9160Hard

Assign

#object#array
#9286Medium

FirstUniqueCharIndex

#string
#9384Hard

Maximum

#array
#9616Medium

Parse URL Params

#infer#string#template-literal
#9775Hard

Capitalize Nest Object Keys

#object#array
#9896Medium

GetMiddleElement

获取数组的中间元素

#9898Medium

Appear only once

找出目标数组中只出现过一次的元素

#9989Medium

Count Element Number To Object

统计数组中的元素个数

#10969Medium

Integer

整数

#template-literal
#13580Hard

Replace Union

#14080Hard

FizzBuzz

#array#math#infer
#14188Hard

Run-length encoding

#15260Hard

Tree path array

#16259Medium

ToPrimitive

将类型为字面类型(标签类型)的属性,转换为基本类型。

#17973Medium

DeepMutable

#readonly#deep
#18142Medium

All

All

#array
#18220Medium

Filter

#array#filter
#19458Hard

SnakeCase

#template-literal#string
#19749Medium

IsEqual

#utils
#21104Medium

FindAll

#template-literal#string
#21106Medium

Combination key type

组合键类型 Combination key type

#21220Medium

Permutations of Tuple

#union#tuple#conditional type
#25170Medium

Replace First

#25270Medium

Transpose

#array#math
#25747Hard

IsNegativeNumber

#number#template-literal
#26401Medium

JSON Schema to TypeScript

#JSON
#27133Medium

Square

#tuple#array#math
#27152Medium

Triangular number

#tuple#array#math
#27862Medium

CartesianProduct

#union
#27932Medium

MergeAll

#object#array#union
#27958Medium

CheckRepeatedTuple

CheckRepeatedTuple

#28143Hard

OptionalUndefined

#28333Medium

Public Type

#object-keys
#29650Medium

ExtractToObject

#object
#29785Medium

Deep Omit

#omit object-keys deep
#30178Hard

Unique Items

#tuple#application#cif
#30301Medium

IsOdd

#string
#30430Medium

Tower of hanoi

#array
#30575Hard

BitwiseXOR

#30958Medium

Pascal's triangle

#array#math
#30970Medium

IsFixedStringLiteralType

#31447Extreme

CountReversePairs

#31797Hard

Sudoku

#union#array#tuple
#31824Hard

Length of String 3

#31997Extreme

Parameter Intersection

#parameters#array#variadic
#32427Hard

Unbox

#utils#promise#function
#32532Hard

Binary Addition

#recursion#array
#33345Extreme

Dynamic Route

#33763Hard

Union to Object from key

#34007Medium

Compare Array Length

#recursion#array
#34286Hard

Take Elements

#array
#34857Medium

Defined Partial Record

#35045Medium

Longest Common Prefix

#35191Medium

Trace

#35252Medium

IsAlphabet

#35314Hard

Valid Sudoku

#array#math#game
#35991Medium

MyUppercase

题库来自 Type Challenges (MIT),共 190 题 · utils 5b3ab5af