查看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);
// ...