类型'string'不能赋值为'“get”| “后””

问题描述 投票:0回答:1

如何使用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的情况下完成吗?

javascript jsdoc
1个回答
1
投票

TD; LR

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

版本更长

jsDoc可以很好地限制变量的类型,如果传递一个对象,你还可以使用@typedef@param的组合检查其属性的类型(有关更多信息,请参阅here)。因此,您可以使用它来检查参数是否是基本类型,或者它是否是对象 - 如果它具有某些属性(指定类型),那就是全部。

如果你想要更多,你要么必须自己实现它,要么使用TS。

© www.soinside.com 2019 - 2024. All rights reserved.