Typescript JSDoc组总和类型

时间:2019-06-02 13:17:08

标签: javascript typescript jsdoc

我正在使用JSDoc为我的JavaScript提供一些基本类型。它工作正常,使智能感知成为非常有用的体验。 但是,javascript仍然是javascript,我更喜欢在常量代码上使用常量而不是字符串。但是,当我尝试构建一个对所有可能值进行“分组”的对象时,我无法正确键入它或将其用于返回已定义类型的函数。 让我用一个例子来解释它

<script type="text/javascript">
    window.onload = function () {
     var val = '@(ViewBag.Lon)';
        document.getElementById("demo").innerHTML = val;
    }
</script>

<h3 id="demo" >Passing Data From Controller to View using ViewBag</h3>

在这种情况下,我在TaskStatus对象的第一行出现以下错误

/**
 * @typedef {'running'|'stopped'|'running'|'not-started'} Status
 */

export const TaskStatus = {
    /** @type {'stopped'} */
    STOPPED: 'stopped',
    PAUSED: 'paused',
    RUNNING: 'running',
    NOT_STARTED: 'not-started'
};

如果我尝试键入一个期望使用对象上的常量返回此定义类型的函数,则会出现相同的错误:

Type 'string' is not assignable to type '"stopped"'.ts(2322)

如何使用刚刚定义的类型键入字符串?它们是与指定值匹配的字符串,那怎么了?

0 个答案:

没有答案