打字稿错误中的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开始支持,这个版本尚不可用。
更改项目打字稿版本的操作:
- 有必要在package.json中设置正确的打字稿版本(我的情况是2.5.3)。
- 在项目根目录(包含package.json的文件夹)中运行
nmp install
,然后运行。 - 为了确保使用正确的打字稿版本,运行
ng -v
- 我怎样才能得到Visual Studio Typescript 1.7 intellisense与nodejs库(angular2,rxjs)?
- 如何从打字稿中使用npm模块?
- 为什么添加这需要导入停止Node.js输出到控制台
- TypeScript:如何告诉WebStorm使用CommonJS而不是AMD
- 错误:无法parsing模块“应用”webpack angular2
- MSBuild是否需要在Angular2的依赖项(在node_modules中)中传输.ts文件以使Angular2正常工作?
- TypeScript和Socket.io
- 打字稿冲突的variables名称
- 找不到模块'ts-node / register'