如何使用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的情况下完成此操作吗?
答案 0 :(得分:0)
TD; LR
jsDoc不支持检查字符串的内容。
长版
jsDoc很好地限制了变量的 type ,如果传递对象,您还可以使用@typedef
和{{1}的组合检查其属性的类型。 }(有关更多信息,请参见here)。因此,您可以使用它来检查参数是否为原始类型或它是否为对象-是否具有全部的(指定类型的)某些属性。
如果您想要的更多,则必须自己实现或使用TS。