当前位置: 首页 > 网络应用技术

从新手到入门的打字稿仿制药

时间:2023-03-05 23:53:31 网络应用技术

  从一些简单的示例中学习类型的体操。

  所有主题均来自类型挑战的挑战。

  问题答案同步到github

  通用类型可以理解为类型函数。它的意思是类型参数,与表单参数相同,<>可以写的任何字母。

  由Anthony Fu(@antfu)#B #Union#内置

  实现构建的TS,但不能使用它。

  从类型中选择属性,然后创建一个新类型。

  例如:

  const obj = {foo:1,bar:2,baz:3,};

  const foo = getProperty(obj,“ foo”);const b = getroperty(obj,“ b”);console.log(b);// 不明确的

  用于确定是否可以分配的所有成员属性。

  使用上述示例分解:

  2。

  //穿越组合类型的属性=“ name” |“年龄” |“ Phonenum”;type propertyObject = {[属性中的键]:string};

  由Anthony Fu(@antfu)#B#内置#Readonly#object-keys

  请勿使用构建-in,而是独自实施。

  会议收到一个通用参数并返回完全相同的类型,但所有属性都将被修改。

  也就是说,不再可以分配对象的属性。

  例如:

  //初始化const down foo:foo = {bar:123,bas:456};

  //不能更改foo.bar = 456;//错误:foo.bar仅读取属性

  由Sinoon(@Sinoon)#B

  传递到元组类型中,将此元组类型转换为对象类型,该对象类型的键/值从元组中遍历。

  例如:

  const a2 ='123'type a2 = typeof A2 //'123'a2 =“ 321” //不能分配给“ A2”,因为它是恒定的。

  //结果:( a:number,b:number)=>数字类型t1 = typeof add //结果:{name:string;agpe:} type t2 = typeof obj

  它与上面相同,但是您需要首先使用元组的所有元素,

  然后穿越,

  因为它是获得的元素,所以返回值将直接返回到p。

  请注意,TE将在通用类型中扩展了ROADONLY String [],如果您使用任何内容,则会导致 @ts-expect-error通过。

  @ts-expect-error,如果我们在代码行的前面发布此注释,Typescript将期望以下代码报告错误。报告错误是正常的。

  由Anthony Fu(@antfu)#B #array

  实现将军,接受数组并返回其第一个元素类型。

  例如:

  让func1:func;// =>布尔值LET func2:func<''>;// => boolean let func3:func<() => 承诺>;// =>承诺

  您需要在这里注意,首先<[3, 2, 1]>通用中的所有参数都是类型而不是JavaScript对象。

  由Sinoon(@Sinoon)#simple #tuple

  创建一个通用,接受数组,然后返回此数组的长度。

  例如:

  关于这一点没有什么可说的,知识点已上述。当引入通用时,必须在约束下通过元组,否则测试案例将不会通过

  Zheeeng(@zheeeng)#simple#内置

  实现构建的TS,但不能使用它。

  由Maciej Sikora(@maciejsikora)#B #B #Promise#内置

  如果我们有一个承诺对象,此承诺对象将返回类型。在TS中,我们使用t来描述Promise Back的类型。请实现一种类型来获取此类型。

  例如:,请返回exippletype类型。

  这个挑战来自@maciejsikora文章:原始文章

  没什么可说的,知识点已上述。入口值需要被限制为承诺,而回报值需要递归以确定承诺的通用参数是否为承诺。

  由Pavel Glushkov(@pashutk)#B #Utils

  实现一种类型,它接收条件类型,判断为实时的返回类型以及判断为假货的返回类型。它只能是或可以是任何类型。

  例子:

  这个问题本身非常简单。请注意限制C条目的类型。

  关键是TS配置,有时有时不包含在不同的环境中。

  在中间打开。

  建议在任何情况下打开严格的模式检查。

  由Andrey Krasovsky(@bre30kra69cs)#B #array

  在类型系统中实现构建的JavaScript方法。此类型接受两个参数。返回的新数组类型应从从左到右的输入参数的顺序合并为新数组。

  例如,

  这无话可说,使用JS的想法,使用操作员扩展操作员,然后查看添加约束的错误。

  由null(@kynefuk)#b #array

  在类型系统中实现JavaScript的方法。此类型接受两个参数。返回类型是。

  例如,

  这个问题有点复杂。通常,最好将仿制药用于首先编写想法,然后将其转换为仿制药。

  或自己写一个

  由Jiangshan(@jiangshanmeta)#B #array

  在类型系统中实现通用 - 可使用。

  例如,如下所示

  再次康复非常简单,没什么可说的。

  由Jiangshan(@jiangshanmeta)#B #array

  实现类型版本。

  例如,

  发送主题,与上述相同。

  由Midorizemi(@midorizemi)#B #Infer #tuple#内置

  实现构建的 - 参数类型,而不是直接使用它,可以参考打字稿的官方文档。

  这是一个熟悉的应用程序。

  原始:https://juejin.cn/post/7103046028235898888