TypeScript's string enums - “Type … is not assignable to type …”

后端 未结 9 2060
不思量自难忘°
不思量自难忘° 2020-12-10 23:45

I have recently upgraded the version of TypeScript from 2.3.4 to 2.4.0 hoping to use the string enums. To my dismay, however, I have been greeted with the error messages:

9条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-11 00:20

    This is the error you get when compiling with a version of typescript older than 2.4. All I can suggest is that your copy of Visual Studio is somehow picking up its own older version of typescript rather than using the newer one installed in your project. See the wiki https://github.com/Microsoft/TypeScript/wiki/Updating-TypeScript-in-Visual-Studio-2017 for instructions on updating typescript.

    PS C:\temp> cat t.ts
    enum StepType {
        Start = 'S',
        Activity = 'A',
        Decision = 'D',
        End = 'E'
    }
    PS C:\temp> node somepath\node_modules\typescript\bin\tsc --version
    Version 2.2.2
    PS C:\temp> node somepath\node_modules\typescript\bin\tsc t.ts
    t.ts(2,13): error TS2322: Type '"S"' is not assignable to type 'StepType'.
    t.ts(3,16): error TS2322: Type '"A"' is not assignable to type 'StepType'.
    t.ts(4,16): error TS2322: Type '"D"' is not assignable to type 'StepType'.
    t.ts(5,11): error TS2322: Type '"E"' is not assignable to type 'StepType'.
    PS C:\temp> tsc --version
    Version 2.4.1
    PS C:\temp> tsc t.ts
    PS C:\temp>
    

提交回复
热议问题