如何使用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的情况下完成吗?
TD; LR
jsDoc中不支持检查字符串的内容。
版本更长
jsDoc可以很好地限制变量的类型,如果传递一个对象,你还可以使用@typedef
和@param
的组合检查其属性的类型(有关更多信息,请参阅here)。因此,您可以使用它来检查参数是否是基本类型,或者它是否是对象 - 如果它具有某些属性(指定类型),那就是全部。
如果你想要更多,你要么必须自己实现它,要么使用TS。