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

JSDoc支持_TypeScript笔记19

TypeScript 类型系统解析这些 JSDoc 标记得到额外类型信息输入,并结合类型推断对.js文件进行类型检查 P.S.关于.js类型检查的更多信息,见检查 JavaScript 文件_TypeScript...Compiler,更多相关讨论见Add support for @template JSDoc 三.类型标注语法 TypeScript 兼容 JSDoc 类型标注,同时也支持在 JSDoc 标记中使用...类型转换 类型转换(TypeScript 里的类型断言)语法与 JSDoc 一致,通过圆括号前的@type标记说明圆括号里表达式的类型: /** @type {!...描述的不算) 枚举 枚举用@enum标记来描述,但与TypeScript 枚举类型不同,主要差异在于: 要求枚举成员类型一致 但枚举成员可以是任意类型 例如: /** @enum {number} *...number} * 开启 strictNullChecks 时,类型 number | null * 关闭 strictNullChecks 时,类型 number */ var nullable

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

TypeScript 5发布,带来了哪些惊喜?一文告诉你

TypeScript 5是微软开发的一种在JavaScript基础上添加类型语法的编程语言,它可以帮助开发者在编译时检查代码中的错误,并提供更好的编辑器支持。...装饰器是一种即将成为ECMAScript标准的功能,可以以一种可重用的方式定制类和成员。 比如,我们可以用装饰器来给方法添加日志、缓存、验证等功能,而不需要修改原始代码。...除此之外,TypeScript 5还有以下新特性和改进: const 类型参数:允许使用 const 断言来约束泛型类型参数; 支持多个配置文件继承:允许 tsconfig.json 文件通过 extends...字段指定多个其他配置文件; 所有枚举都是联合枚举:使得枚举类型更加灵活和安全; –verbatimModuleSyntax :支持 export type * 的语法; @satisfies 支持 JSDoc...:允许使用 @satisfies 标签来指定类实现了某个接口或抽象类; @overload 支持 JSDoc:允许使用 @overload 标签来定义函数重载; 在 –build 下传递生成相关选项:允许在使用

39230

15个Typescript 5.0 中重要的新功能快速了解一下

在本文中,我们深入研究 TypeScript 的最新迭代版本 5.0,并探索其最值得注意的更新。 1.装饰器 TypeScript 5.0 引入了改进的装饰器系统,改进了类型检查和元数据生成。...2. const 类型参数 在 TypeScript 5.0 之前,其推理通常会选择更通用的类型,例如 ["Alice", "Bob", "Eve"] 推断 string[],如果您想要更具体的类型...5.0 通过为每个计算成员创建唯一类型,设法所有枚举变成联合枚举。...这意味着现在可以缩小所有枚举的范围,并将其成员也作为类型引用。 5. — moduleResolution 捆绑器 TypeScript 5.0 引入了一种新的模块解析策略,称为 bundler。...JSDoc 中的@overload 支持 TypeScript 5.0 添加了对 @overload JSDoc 标记的支持,允许您在 JavaScript 代码中单个实现定义多个函数签名。

22230

检查JavaScript文件_TypeScript笔记18

写在前面 TypeScript类型检查不仅限于.ts,还支持.js 但为了确保文件内容只含有标准的 JavaScript 代码,.js文件按照 ES 语法规范来检查,因而不允许出现 TypeScript...定义的泛型,若未指定类型参数,就默认any 类型宽松的对象字面量 .ts里,用对象字面量初始化变量的同时会确定该变量的类型,并且不允许往对象字面量上添加新成员,例如: // .ts // obj 类型...,所以上例中C类实例的类型: // TypeScript type C = { constructorOnly: number; constructorUnknown: string; method...,或者构造函数中类型undefined或null(此时any)的属性,其类型所有赋值中右侧值类型的联合 定义在构造函数中的属性都认为是一定存在的,其它地方(如成员方法)出现的都当作可选的 类声明中未出现的属性都是未定义的...,访问就报错 构造函数等价于类 另外,在 ES6 之前,JavaScript 里用构造函数代替类,TypeScript 类型系统也能够“理解”这种模式(构造函数等价于 ES6 Class),成员赋值推断同样适用

2.4K50

PHPDoc、JSDoc、Vue JSDoc相关的语法,持续记录

PHPDoc PHPDoc 是一种注释规范,用于 PHP 代码提供文档。 1.@param @param参数类型 $参数名称 参数说明 - 用于指定一个函数或方法的参数类型、名称和说明。...*/ function OldMethod(){ // 该方法已被弃用 } JSDoc  JSDoc 是一种用于 JavaScript 代码提供文档的注释规范。 1....@returns @returns {类型} 返回值描述 - 用于指定一个函数或方法返回值的类型和说明。 /** * 计算数组中所有元素之和。...@typedef  @typedef 类型定义名称 = 类型定义内容 - 用于定义一个自定义数据类型,可以在函数注释或其它地方引用它,并且可以包含属性、方法等成员。 /** * 用户信息对象。...// TypeScript let name: string = 'Amy'; // JSDoc /** @type {string} */ let name = 'Amy'; Vue JsDoc Vue.js

25220

使用 TypeScript 开发你的项目

当然,向 JavaScript 提供一个可选的静态类型是一个最重要的变化点了。 在接下来,我简单的阐述为什么静态类型对大型项目是友好的,以及对 Function type 的一次实践写法。...: 在这个简单的例子里,我们认为 someMethod 的参数一个数组,可是实际情况并不是,它是一个数字。...改为 TypeScript 加上简单的类型推断时: 可见,它在编译前就已经给出了错误的提示。...不同于 JSDocTypeScript 提供的类型声明和模块接口形成了文档的形状,提供程序的行为提示,并在编译时会校验程序的正确性。 改动下上个例子: 当然,对大型项目来说,这可能要复杂的多。...number) => string)) => string 在这个 type 里,我们定义了一个 someMethod 方法,它有一个可选参数 callback,同时规定这个 callback 有且仅有一个类型

9310

使用 TypeScript 开发你的项目

JavaScript 是动态类型的,只能在 runtime 时进行类型检查;同时它也给重构大型项目带来了的困扰,在一定程度上,它是不「易读」的。而 TypeScript 能够很好的解决上述问题。 ?...当然,向 JavaScript 提供一个可选的静态类型是一个最重要的变化点了。 在接下来,我简单的阐述为什么静态类型对大型项目是友好的,以及对 Function type 的一次实践写法。...在这个简单的例子里,我们认为 someMethod 的参数一个数组,可是实际情况并不是,它是一个数字。理所当然,它报错了。 改为 TypeScript 加上简单的类型推断时: ?...不同于 JSDocTypeScript 提供的类型声明和模块接口形成了文档的形状,提供程序的行为提示,并在编译时会校验程序的正确性。 改动下上个例子: ? 当然,对大型项目来说,这可能要复杂的多。...=> string)) => string 复制代码 在这个 type 里,我们定义了一个 someMethod 方法,它有一个可选参数 callback,同时规定这个 callback 有且仅有一个类型

1.3K20

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

答案就是 // @ts-check,在 js 文件的头部引入这样一行注释,然后配合JSDoc就可以在JavaScript代码中使用 TypeScript类型检查了。...也就是说我们一个字符串赋值给了一个数字类型的变量是有问题的,这个时候我们未运行程序,但是编辑器已经帮我们分析出了代码可能存在的问题,这时候我们运行代码,是没有报错的。...JSDoc 类型标记 既然ts-check这么好用,我们来看看 JSDoc 类型的注释支持哪些类型的检测。...; /** * - string或者boolean类型 * @type {string | boolean} */ let sb; // -------- 多种方式指定数组类型-----...写在最后 对于老项目,使用 // @ts-check 和 JSDoc 来来享受TypeScript类型系统的好处是最简单、学习成本最低的方法。

1.7K20

精读《Typescript 4》

2 简介 可变元组类型 考虑 concat 场景,接收两个数组或者元组类型,组成一个新数组: function concat(arr1, arr2) { return [...arr1, ...arr2...TS T 与 U 是数组类型,再通过 [...T, ...U] 按照逻辑顺序依次拼接类型。...,函数 f 第一个参数类型定义有顺序的 [...T, ...U]: type Arr = readonly unknown[]; function partialCall<T extends Arr...: string, ...rest: any[]]; Class 从构造函数推断成员变量类型 构造函数在类实例化时负责一些初始化工作,比如成员变量赋值,在 Typescript 4,在构造函数里对成员变量的赋值可以直接成员变量推导类型...b catch error unknown 类型 Typescript 4.0 之后,我们可以 catch error 定义 unknown 类型,以保证后面的代码以健壮的类型判断方式书写: try

74920

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

基于 TypeScript 类型声明文件 除了使用 JSDoc 提前声明类型,更为激进的做法是直接使用微软开发的 TypeScript整个项目带来完善的静态类型检查。...不过由于和 TypeScript 师出同门,VSCode 能够直接读取前者的类型声明文件,来 JavaScript 提供智能提示(实际上 JavaScript 的智能提示功能就是基于 TypeScript...TypeScript类型声明文件以 .d.ts 后缀,用于描述同名的 JavaScript 文件导出代码的类型,功能上类似于 C 语言的 .h 头文件。...不严格地来说,ts 类型声明文件就像用 TypeScript 语法 JSDoc 的注释重写了一遍并提取到了单独的文件中。...VSCode 更是二者作了融合,当你二者混用的时候,可以直接在 JSDoc 的注释中直接使用 ts 类型声明文件中定义的 interface 和 class 等。

3.2K20

JSDoc还需要TypeScript

这听起来是不是很耳熟:你想写一个小型脚本,不管是页面、命令行工具,还是其他什么类型。你从JavaScript开始,直到你想起写代码时没有类型是多么痛苦。所以你把文件从.js重命名为.ts。...你可以通过使用JSDoc在JavaScript中获得TypeScript的所有好处 TypeScript所提供的是一个静态类型系统。这意味着类型信息在运行代码中没有影响。...TypeScript分析器能够理解用JSDoc写的类型,并给你提供与.ts文件相同的静态分析。 我不会在这里提供完整的语法文档。...注意,你仍然需要为typescript设置你的项目(和IDE),你需要创建一个tsconfig.json文件,编译器选项allowJs和checkJs设置true: // tsconfig.json...建议 所以现在我的建议是这样的: 当你正在做一个有编译步骤的项目时,使用TypeScript没有什么坏处 但是如果你不需要编译步骤,那么坚持使用JSDoc类型注释可能更容易。

27420

d.ts

are available for use as types in JsDoc comments. d.ts大名叫TypeScript Declaration File,存放一些声明,类似于C/C++...getWidget(s: string): Widget[]; getWidget函数有两个签名,其一接受1个数值类型参数n,返回Widget,其二接受1个字符串类型参数s,返回Widget数组 接口...greeting以及成员方法showGreeting 五.实践规范 除了遵循基本的语法格式外,实践中还应该遵守这些规范约束: 用基础类型(number, string, boolean, object)...所以,得到的API列表肯定全,但参数类型JSDoc等就无能为力了,算是一种取舍: This means no matter how the object was written, anything,...TypeScript编译源码时本来就会推断校验参数类型,函数签名等,这些信息输出出来就是d.ts: When a TypeScript script gets compiled there is an

2.8K30

不需要TypeScript,JS+JSDoc够了?大佬说我想多了

Q5:我们一开始用 TypeScript 是因为 TypeScript 提供了类型检查,弥补了 JavaScript 只有逻辑没有类型的问题,那如果我们用 JavaScript + JSDoc 来解决类型声明...我更期望看到后续 TypeScript 团队能优化这块的体验。 刘易成:JSDoc 只能解决一部分类型的问题,而 TypeScript 是一个完整的类型系统。...还有就是 TypeScript 有一些学习成本,如果是新手很容易不注意类型检查,把 TypeScript 写成了 AnyScript,失去了使用 TypeScript 的意义,所以建议通过一些约束和培训...刘易成:TypeScript 的出现确实有一部分原因是 JavaScript 比较难 “驾驭”,JavaScript 太灵活了,缺少类型约束,很容易写出 bug 代码,TypeScript 一定程度上解决了这个问题...刘勇:TypeScript 的定位是 JavaScript 的一个超集,它的能力是以 TC39 制定的 ECMAScript 规范基准(即 JavaScript )。

28010

Angular 工具篇之文档管理

Angular 工具篇之Storybook Angular 工具篇之国际化处理 Angular 工具篇之npx及angular-cli-ghpages Angular 工具篇之分析包的大小 本文我们介绍...Compodoc 这款工具,它用于 Angular 应用程序生成静态文档。...Compodoc 能够帮助 Angular开发人员他们的应用程序生成清晰且有用的文档,这使得参与应用程序开发的其它成员也可以轻松了解当前应用程序或库的特性。...文档注释 comments Compodoc 使用 TypeScript AST 解析器和它的内部 API,因此注释必须是合法的 JSDoc 注释。...JSDoc Tags 由于 TypeScript 编译器的限制 目前 Compodoc 只支持以下的 JSDoc 标签: @returns —— 描述返回值 @ignore —— 表示标记的内容永远不会出现在文档中

1.6K10
领券