首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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 {!

4K10

JSDoc 真能取代 TypeScript

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

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

【译】不是 TypeScriptTypeScript -- 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.1K30

不是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

28710

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

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

16710

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.5K20

为你的 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 类型声明文件的语法等相关信息

3.2K20

精读《Typescript 4》

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

74920

JS的静态类型检测,有内味儿了

答案就是 // @ts-check,在 js 文件的头部引入这样一行注释,然后配合JSDoc就可以在JavaScript代码中使用 TypeScript类型检查了。...因为这个类型检测只是让我们按照TypeScript的强类型语言检测类型问题,但是我们依然是JavaScript代码依然会按照JavaScript的代码逻辑运行,如是TypeScript代码的话,这里运行就会报错...JSDoc 类型标记 既然ts-check这么好用,我们来看看 JSDoc 类型的注释支持哪些类型的检测。...{{a: string, b: number}} */ function fn2() {} @typedef 描述:@typedef 可以用来声明复杂类型,和@param类似的语法。...写在最后 对于老项目,使用 // @ts-check 和 JSDoc 来来享受TypeScript类型系统的好处是最简单、学习成本最低的方法。

1.7K20

精读《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 如果你想参与讨论,请 点击这里,每周都有新的主题,周末或周一发布。

39220

TypeScript类型声明

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

21820

检查JavaScript文件_TypeScript笔记18

写在前面 TypeScript类型检查不仅限于.ts,还支持.js 但为了确保文件内容只含有标准的 JavaScript 代码,.js文件按照 ES 语法规范来检查,因而不允许出现 TypeScript...所以通过JSDoc来给 JavaScript 添加额外的类型信息: JSDoc comments can be used to add some type information to your JavaScript...另外,TypeScript 还支持一些用来控制类型检查的特殊注释: // @ts-nocheck:文件级,跳过类型检查 // @ts-check:文件级,进行类型检查 // @ts-ignore:行级,...any JavaScript 没有提供用来表示泛型参数的语法,因此未指定的类型参数都默认any类型 泛型在 JavaScript 中主要以 2 种形式出现: 继承泛型类,创建 Promise 等(泛型类...Counter { x = 0; } // 推断 x 类型为 number new Counter().x++; 而 ES6 Class 没有提供声明实例属性的语法,类属性通过动态赋值来创建,对于这种

2.4K50
领券