Microsoft/TypeScript

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

オープン

#26,413 opened on 2018/08/13

 (3 件のコメント) (0 件のリアクション) (0 人の担当者)TypeScript (13,395 件のフォーク)batch import
Domain: Error MessagesEffort: ModerateHelp WantedSuggestion

Repository metrics

Stars
 (108,860 個のスター)
PR merge metrics
 (PR metrics pending)

説明

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.

コントリビューターガイド