首页
学习
活动
专区
圈层
工具
发布

JSDoc支持_TypeScript笔记19

一.JSDoc 与类型检查 .js文件里不支持 TypeScript 类型标注语法: // 错误 'types' can only be used in a .ts file. let x: number...Compiler,更多相关讨论见Add support for @template JSDoc 三.类型标注语法 TypeScript 兼容 JSDoc 类型标注,同时也支持在 JSDoc 标记中使用...thing = true; 语法方面,JSDoc 大多借鉴自Google Closure Compiler 类型标注,而 TypeScript 则有自己的一套类型语法,因此二者存在一些差异 类型声明...(只含有@typedef的.js,类似于d.ts),JSDoc 方式会引入一个无用文件(只含有注释),而 TypeScript 方式则不存在这个问题 P.S.TypeScript 同时兼容这两种类型引入语法...类型转换 类型转换(TypeScript 里的类型断言)语法与 JSDoc 一致,通过圆括号前的@type标记说明圆括号里表达式的类型: /** @type {!

4.5K10

JSDoc 真能取代 TypeScript?

这几个月,想必大家都听到过一个新闻: Svelte 弃用 TypeScript,改用 JSDoc 了。...TypeScript 我们知道,是用来给 JS 加上类型的,可以实现类型提示和编译时的类型检查。 那 JSDoc 能够完成一样的功能么?Svelte 是出于什么原因弃用 TS 的呢?...比如这样的文档: 确实,这个是 JSDoc 最初的含义。 但我们说的 JSDoc 并不是这个,而是 TS 基于 JSDoc 语法实现的,在注释里给代码添加类型的语法。...比如一个 JS 的配置文件,你想在写配置的时候能有提示,就可以用 JSDoc: 这里注释里的 @type 就是 JSDoc 声明类型的语法。...但是,JSDoc 语法毕竟是在注释里的,多了一大坨东西,而且写起来也不如 ts 语法直观。 所以,一般没必要这样写,除非你是给 JS 加类型。

68530
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    原文链接:https://fettblog.eu/typescript-jsdoc-superpowers/undefined作者:@ddprrtundefined时间:2019.07.16 我们可以把...目录 带有JSDoc注释的TypeScript 激活检查 内联类型 定义对象 定义函数 导入类型 使用泛型 枚举 typeof 从类扩展 带有 JSDoc 注释的 TypeScript 在最优的情况下,...我们可以通过添加 JSDoc 注释为 TypeScript 提供更多信息: /** * Adds VAT to a price * * @param {number} price The price...类型有很多很多,比评论中的几种基本类型更多。结果就是使用 JSDoc 类型可以让你走得很远。...使用泛型 只要存在可以通用的类型,TypeScript 的泛型语法就可用: /** @type PromiseLike */ let promise; // checks.

    3.5K30

    不是Typescript用不起,而是JSDoc更有性价比?

    业内开始用 TypeScript 是因为 TypeScript 提供了类型检查,弥补了 JavaScript 只有逻辑没有类型的问题, 对于大型项目、多人协作和需要高可靠性的项目来说,使用 TypeScript...早在 1999 年由 Netscape/Mozilla 发布的 Rhino -- 一个 Java 编写的 JS 引擎中,已经出现了类似 Javadoc 语法的 JSDoc 雏形 Michael Mathews...直到 2011 年,重构后的 JSDoc 3.0 已经可以运行在 Node.js 上 JSDoc 语法举例 定义对象类型: /** * @typedef {object} Rgb * @property...比如上文中的一些类型定义,如果用这种新语法,写出来可以是这样的: 定义对象类型: /** * @typedef {{ brand: string; color: Rgb }} Car */ /**...的类型检查工具的 IDE,比如以代表性的 VSCode 来说,其加持能使类型安全锦上添花;与 JSDoc 类型(即便不用TS语法也可以)对应的 TS 类型会被自动推断出来并显示、配置了 //@ts-check

    84510

    TypeScript 类型体操,无非是语法过度嵌套而已

    一些三方工具库的类型直接就不兼容了,那一瞬间就超级想要放弃 TypeScript. 所以就想趁着这个烦躁情绪还在,来跟大家好好吐槽一下 TypeScript,这个让人又爱又恨的技术方案。...Latest : never 一个小小的三目运算符,叠加了好几个基础语法。 然后,我的问题就是,在强类型的逻辑里,一个数组,为什么要有不同类型的子项?...四、如何正确使用 TypeScript 好在我洞察了 TS 各种行业乱象,滤清了各种嘈杂的声音,回归到 TS 是一门强类型语言的本质,充分发挥这一特点,从提高开发效率的角度,找到了使用 TypeScript...五、如何学习 TypeScript 我们只需要明白一个道理,就能具备学好 TS 的基础,那就是:类型体操是基础语法的嵌套。因此,我们只需要去学习 TS 的基础语法就好了。...的必要性 观察 TypeScript 的实践运用 泛型 类型推导是核心 常用高级类型 准确理解类型兼容

    52610

    Typescript基础语法

    typescript与javascript typescript是一个js的超集,个人理解为包装了面向对象编程逻辑的语法糖,所以一般使用typescript的语言来编写代码,然后再使用typescript...typescript语法很多地方与java类似,作为java程序员学起来不会很吃力。...安装typescript npm install -g typescript 类型语法 通过在形参右侧使用 : 类型,代表限定的形参类型。...;//此处T代表方法泛型,而非类泛型 } class GenericNumber { zeroValue: T; } 联合类型 typescript还支持创建一个可以指代多种类型的类型,...通过|运算符,即可使用不同类型创建一个联合类型,代表当前变量为其中之一,如 let a : string | number; 类型别名 typescript还支持为类型定义别名,这个可以用于联合类型,

    1.7K20

    为你的 JavaScript 项目添加智能提示和类型检查

    基于 JSDoc JSDoc 是目前最通用的 JavaScript API 文档生成器,根据其语法编写代码注释,可以十分方便地自动生成文档。...VSCode 基本支持 JSDoc 的常见语法,具体使用可参见JSDoc support in JavaScript。...基于 TypeScript 类型声明文件 除了使用 JSDoc 提前声明类型,更为激进的做法是直接使用微软开发的 TypeScript,为整个项目带来完善的静态类型检查。...不严格地来说,ts 类型声明文件就像用 TypeScript 语法将 JSDoc 的注释重写了一遍并提取到了单独的文件中。...VSCode 有很多第三方库已经内置类型声明文件,自己下载的话直接使用 npm 即可: # @types + 第三方库名称 npm i @types/express 关于 ts 类型声明文件的语法等相关信息

    4.2K20

    TypeScript基本语法使用

    前言 此文档是根据b站视频所记 浏览器是不认识ts语言的,写的ts代码也会编译成js让浏览器识别 ts官网:在线写ts 安装 npm i typescript -g 1.类型判断 let str = "...abc"; // 推断 str 为字符串类型 str = 10; //报错,str已经被初始值字符串给类型限定了,所以str只能存储字符串类型 2.类型注解 let str : string; // 推断...str 为字符串类型 str = 10; //报错,str已经被初始值字符串给类型限定了,所以str只能存储字符串类型 str = "abc"; //正确 3.类型断言 //错误 ↓ let numArr...: string): string { return a + b; } //a 如果不传参数便是默认值10,...rest是剩余参数 function MyFn1(a = 10, b: string...: string, ...rest:number[]): string { return a + b + c + rest; } const f: string = MyFn1(20, "楠笙",

    26410

    精读《Rest vs Spread 语法》

    在 JS 语言里同时被用作 Rest 与 Spread 两个场景,本周我们就结合 Rest vs Spread syntax in JavaScript 聊聊这两者的差异以及一些坑。...a + b + c; console.log(sum(...arr)); // Outputs: 6 // ^ // sum(1, 2, 3) Rest...Rest 收集到,遇到这种场景可以使用其他方式,如直接访问 error.message。...用在赋值位置含义为 Spread,用在参数收集位置含义为 Rest,同时因为该语法写起来很简单,因此有一些默认逻辑小心不要掉坑里,比如默认会执行对象属性的 getter,会跳过不可枚举属性等。...讨论地址是:精读《Rest vs Spread 语法》· Issue #447 · dt-fe/weekly 如果你想参与讨论,请 点击这里,每周都有新的主题,周末或周一发布。

    49320

    精读《Typescript 4》

    ,且 arr: readonly [any, ...T] 申明了 T 类型表示除第一项其余项的类型,TS 可自动将 T 类型关联到对象 rest: function tailrest: any[]]; Class 从构造函数推断成员变量类型 构造函数在类实例化时负责一些初始化工作,比如为成员变量赋值,在 Typescript 4,在构造函数里对成员变量的赋值可以直接为成员变量推导类型...局部 TS Server 快速启动功能, 打开大型项目时,TS Server 要准备很久,Typescript 4 在 VSCode 编译器下做了优化,可以提前对当前打开的单文件进行部分语法响应。...3 精读 Typescript 4 最大亮点就是可变元组类型了,但可变元组类型也不能解决所有问题。...4 总结 Typescript 4 带来了更强类型语法,更智能的类型推导,更快的构建速度以及更合理的开发者工具优化,唯一的几个 Break Change 不会对项目带来实质影响,期待正式版的发布。

    90820

    【OpenHarmony】TypeScript 语法 ② ( 基础数据类型 | 布尔类型 | 数字类型 | 字符串类型 | 数组类型 | 元组类型 | 枚举类型 | 未知类型 | 联合类型 )

    一、基础数据类型 TypeScript 是 JavaScript 的超集 , TypeScript 的基础数据类型 与 JavaScript 的基础数据类型 基本相同 , 下面开始介绍 TypeScript...中的基础数据类型 ; 1、布尔类型 TypeScript 中的 布尔值类型 使用 " boolean " 表示 , 取值 true 或 false ; 代码示例 : // 声明 布尔类型 变量 let..." , str2 : " + str2); 在 https://ts.nodejs.cn/play 中运行 TypeScript 代码 : 4、数组类型 TypeScript 中的 数组类型 有两种表示方法...: " + color); 在 https://ts.nodejs.cn/play 中运行 TypeScript 代码 : 7、未知类型 TypeScript 中的 未知类型 使用 unknown.../play 中运行 TypeScript 代码 : [LOG]: "void 类型示例" 9、null 空类型 TypeScript 中的 null 空类型 表示一个空的对象值 , 值就是 null

    80610

    【TypeScript】类型声明

    当我们使用TypeScript编写代码时,类型声明是非常重要的,它帮助我们定义变量、函数、类等的类型,从而提供更好的代码提示、类型检查和代码可读性。...以下是关于TypeScript类型声明的详细内容:基本类型声明在TypeScript中,我们可以使用以下关键字来声明基本类型:let num: number = 42;let str: string =...(Type Assertion)类型断言允许我们手动指定变量的类型,并告诉TypeScript编译器我们知道更多关于变量的类型信息。...: number; readonly id: number;}以上是关于TypeScript类型声明的一些重要内容。通过合理使用类型声明,我们可以增强代码的可读性、类型安全性和可维护性。...类型声明是TypeScript的核心特性之一,可以帮助我们构建更健壮的代码和应用程序。我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

    67020

    TypeScript 深水区:3 种类型来源和 3 种模块语法

    TypeScript 给 JavaScript 添加了一套类型语法,我们声明变量的时候可以给变量加上类型信息,这样编译阶段就可以检查出变量使用的对不对,也就是类型检查。...: TypeScript 这样设计类型语法没啥问题,但是只是这样还不够。...TypeScript 类型声明的三种来源 TypeScript 设计了 declare 的语法,可以单独声明变量的类型: 比如对象: interface Person { name: string...所以 TypeScript 给内置了它们的类型声明。 TypeScript 包下有个 lib 目录,里面有一堆 lib.xx.d.ts 的类型声明文件,这就是 TS 内置的一些类型声明。...: 比如 @types/node 里就有不少这种全局类型声明: 这就是 3 种 typescript 声明模块的语法,以及声明全局类型的方式。

    78110

    深入理解 TypeScript 中的类型提取语法与实际应用

    theme: channing-cyanhighlight: atom-one-dark在 TypeScript 中,类型系统提供了极大的灵活性和强大的表达能力。...这里的 是类型参数的声明部分,表示 T 必须是一个数组类型或元组类型。T 是一个泛型参数,可以表示任何符合条件的类型。...extends any[] 表示 T 必须是 any[] 类型的子类型,也就是一个数组或元组。...它表示从类型 T 中取出所有 keyof T & number 对应的值。keyof Tkeyof T 表示获取类型 T 的所有键的联合类型。...这种类型工具对于操作复杂类型、定义通用逻辑十分有用。通过对每个组成部分的逐步分析,以及示例的展示,相信你对这一类型提取工具的意义和用途有了更深刻的理解。

    31510
    领券