"any"和"*"之间有什么区别吗?

  • 本文关键字:区别 any 之间 jsdoc
  • 更新时间 :
  • 英文 :


查看https://github.com/gajus/eslint-plugin-jsdoc,似乎{any}{*}是可互换的。

然而,https://github.com/google/closure-compiler/wiki/Types-in-the-Closure-Type-System未提及{any};任何";以及";所有";。

any*之间有区别吗?

检查Typescript编译器(解析JSDoc以进行键入的编译器(的源代码,可以发现any*(JSDoc ALL Type(和?(JSDocUnknown/ANY Type(的处理方式相同:

TypeScript/src/compiler/checker.ts

function getTypeFromTypeNodeWorker(node: TypeNode): Type {
switch (node.kind) {
case SyntaxKind.AnyKeyword:
case SyntaxKind.JSDocAllType:
case SyntaxKind.JSDocUnknownType:
return anyType;
// ...

此外,Javascript到Typescript文件转换器的逻辑也是一样的:

TypeScript/src/services/codefixes/anntateWithTypeFromJSDoc.ts

function transformJSDocType(node: TypeNode): TypeNode {
switch (node.kind) {
case SyntaxKind.JSDocAllType:
case SyntaxKind.JSDocUnknownType:
return factory.createTypeReferenceNode("any", emptyArray);
// ...

最新更新