首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【译】不是 TypeScriptTypeScript -- JSDoc 的超能力

激活检查 为了确保您不仅能够获得类型信息,而且在编辑器中(通过tsc)获得实际的错误反馈,请激活源文件中的@ts-check标志: // @ts-check 如果有一个特定的行出错,但你知道这样更好,...=> { return total + addVAT(article) }, 0) } 我们定义了一个复杂的对象类型(就像我们在 TypeScript 中所做的那样)内联作为参数。...使用泛型 只要存在可以通用的类型,TypeScript 的泛型语法就可用: /** @type PromiseLike */ let promise; // checks..../** * @template T * @param {T} obj * @param {(keyof T)[]} params */ function pluck(obj, ...params...内联泛型仍然使用 TypeScript 方式: /** @type { (obj: T, params: K[]) => Array} */ function

3.1K30

TS 从 0 到 1 - 泛型进阶

但这个函数并不是可以扩展通用的。 虽然可以使用 any 解决通用性问题,但那就失去了定义应该返回那种类型的能力,并且也使编译器失去了类型保护的作用。...# 泛型使用时机 当函数、接口类将处理多种数据类型时(为了通用) 当函数、接口类在多个地方使用该数据类型时(为了一致) # 泛型约束 泛型约束用于限制每个类型变量接受的类型数量。...利用条件类型和 infer 关键字,还可以方便地实现获取 Promise 对象的返回值类型。...name: "Cell", age: 18 } as Person; } type PromiseType = (args: any[]) => Promise; type...; // void type T2 = ReturnType() => T>; // {} # 使用泛型创建对象 # 构造签名 有时,泛型类需要基于传入的泛型 T 来创建其类型相关的对象。

70220

让你更好使用 Typescript 的11个技巧

默认情况下,当typescript遇到一个联合类型(这里是string | number)的通用参数(这里是T)时,它会分配到每个组成元素,这就是为什么这里会得到string[] | number[]。...控制推断的类型的通用特殊性 在进行类型推理时,Typescript使用了合理的默认行为,其目的是使普通情况下的代码编写变得简单(所以类型不需要明确注释)。有几种方法可以调整它的行为。...这里有两个简单的示例: // 从一个Promise中获取未被包裹的类型 // idempotent if T is not Promise type ResolvedPromise = T extends...:假设T与某些实例化的通用Promise类型兼容,即时创建类型参数U使其工作。...因此,如果T被实例化为Promise,则U的解决方案将是string。

1K20

【译】Typescript 3.9 常用新特性一览

概况一览 1、优化了 Promise.all 的定义,在 3.7 版本中一些混用 null undefined 的时候的问题已经在 3.9 得到了修复。...定义和书写规范上的改动和修复以前的 bugs 挑几个重点的写一下 1、interface 的优化和 promise.all 使用修复 我们知道在 3.7 版本后面对 promise.all & promise.race...interface Lion { roar(): void } interface Seal { singKissFromARose(): void } async function...详情可以看看下面这几个 pull request 的具体优化内容 github.com/microsoft/T… github.com/microsoft/T… github.com/microsoft.../T… github.com/microsoft/T… github.com/microsoft/T… github.com/microsoft/T… 4、在条件语句中检测未调用的函数 在 3.7 的时候引入了检测未调用函数错误提示

1.3K20
领券