Microsoft/TypeScript

Improve diagnostic when string from property is not assignable to string literal.

Open

#26,413 创建于 2018年8月13日

在 GitHub 查看
 (3 评论) (0 反应) (0 负责人)TypeScript (48,455 star) (6,726 fork)batch import
Domain: Error MessagesEffort: ModerateHelp WantedSuggestion

描述

TypeScript Version: 3.1.0-dev.20180810

Code

interface IceCreamOptions {
    readonly cherry: "yes" | "no"
}
declare function iceCream(options: IceCreamOptions): void;
const options = { cherry: "yes" };
iceCream(options);

Expected behavior:

Error message recommending to add a type annotation to options. This should be detectable because the source of the failing property is a PropertyAssignment in an object literal being assigned to a variable. (If there is no variable assignment, we could still recommend using ``"yes" as "yes"although that isn't as pretty.) Could also come with a codefix. Note that in JS the fix is slightly different: put/** @type {IceCreamOptions} /before theconstor use/* @type {"yes"} */ ("yes")`.

Actual behavior:

Error messages says Type 'string' is not assignable to type '"yes" | "no"'. with no information on how to fix it.

贡献者指南