类型'string'不能分配给类型'“ get” | “帖子”

时间:2019-04-08 21:23:26

标签: javascript jsdoc

如何使用jsdoc将值从string转换为string literal type

当我这样做时:

export default class extends Vue {
  Request (...args) {
    /** @type {'get'|'post'} */
    let method = (args.length == 2 ? args[0] : 'get').toLowerCase()
  }
}

我这样说是错误的:

  

类型'string'不能分配给类型'“ get” | “发布”。

可以在不使用TypeScript的情况下完成此操作吗?

1 个答案:

答案 0 :(得分:0)

TD; LR

jsDoc不支持检查字符串的内容。

长版

jsDoc很好地限制了变量的 type ,如果传递对象,您还可以使用@typedef和{{1}的组合检查其属性的类型。 }(有关更多信息,请参见here)。因此,您可以使用它来检查参数是否为原始类型或它是否为对象-是否具有全部的(指定类型的)某些属性。

如果您想要的更多,则必须自己实现或使用TS。