打字稿错误中的string枚举

我试图添加一个string枚举到我的Angular 2项目,但是在使用npm开始项目期间发生错误:

ERROR in e:/projects/dbtool-fullstack/dbtool-client/src/app/shared/models/full-m odels/enums/Sex.ts (2,10): Type '"Male"' is not assignable to type 'Sex'. ERROR in e:/projects/dbtool-fullstack/dbtool-client/src/app/shared/models/full-m odels/enums/Sex.ts (3,12): Type '"Female"' is not assignable to type 'Sex'. ERROR in e:/projects/dbtool-fullstack/dbtool-client/src/app/shared/models/full-m odels/enums/Sex.ts (4,8): Type '"NA"' is not assignable to type 'Sex'. 

枚举声明:

 export enum Sex { Male = 'Male', Female = 'Female', NA = 'NA' } 

和打字稿版本:

 e:\projects\dbtool-fullstack\dbtool-client>tsc --version Version 2.5.3 e:\projects\dbtool-fullstack\dbtool-client>npm list -g --depth=0 C:\Users\pavlo\AppData\Roaming\npm +-- @angular/cli@1.4.4 +-- npm@5.5.1 `-- typescript@2.5.3 

这种types的Enum声明应该从版本2.4.0开始

什么可能导致这个?

UPDATE

当我使用ng -v时:

 e:\projects\TESTENUMS>ng -v _ _ ____ _ ___ / \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _| / △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | | / ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | | /_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___| |___/ @angular/cli: 1.4.9 node: 6.11.3 os: win32 ia32 @angular/animations: 4.4.6 @angular/common: 4.4.6 @angular/compiler: 4.4.6 @angular/core: 4.4.6 @angular/forms: 4.4.6 @angular/http: 4.4.6 @angular/platform-browser: 4.4.6 @angular/platform-browser-dynamic: 4.4.6 @angular/router: 4.4.6 @angular/cli: 1.4.9 @angular/compiler-cli: 4.4.6 @angular/language-service: 4.4.6 typescript: 2.3.4 

在这种情况下TS的版本是2.3.4。 我不知道它从哪里来。

重要

事实certificate,当前版本的Angular(4.4.6)不支持Typescript> = 2.4.0。 它应该从v5.0.0开始支持,这个版本尚不可用。

更改项目打字稿版本的操作:

  1. 有必要在package.json中设置正确的打字稿版本(我的情况是2.5.3)。
  2. 在项目根目录(包含package.json的文件夹)中运行nmp install ,然后运行。
  3. 为了确保使用正确的打字稿版本,运行ng -v