Microsoft/TypeScript

Error message for invalid string literal type could be improved

オープン

#10,203 opened on 2016/08/08

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

Repository metrics

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

説明

TypeScript Version: 2.0 Beta

Code

// A *self-contained* demonstration of the problem follows...
interface Foo {

    method(value: 'aa'): void;
    method(value: 'bb'): void;
    method(value: 'zz'): void;
    method(value: 'last'): void;
}

const x: Foo = {} as any;

x.method('bar'); // Error line

Expected behavior:

A more meaningful error message, e.g.

Argument of type "'bar'" is not assignable to parameter of type "'aa' | 'bb'|...|'last'"

Actual behavior:

Argument of type "'bar'" is not assignable to parameter of type "'last'"

I am finding this error message confusing, because the compiler picks the value of the last overload in order to report the error, and there is nothing special about the last value.

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