TypeScript编译报错TS1110: Type expected,代码问题求助
问题原因及解决方案
报错原因
最后一行定义FlexFlow类型时使用的模板字面量类型是TypeScript 4.1版本才引入的特性。如果你的TypeScript版本低于4.1,编译器无法识别这种语法,就会抛出error TS1110: Type expected错误。
修复方案
方案1:升级TypeScript版本
将TypeScript升级到4.1或更高版本,即可原生支持模板字面量类型,原代码无需修改。执行以下命令完成升级:
npm install typescript@^4.1 --save-dev # 若使用yarn则执行: yarn add typescript@^4.1 --dev
方案2:手动枚举所有组合(兼容低版本TS)
如果无法升级TypeScript版本,可手动列出FlexDirection和FlexWrap的所有可能组合,替代模板字面量语法:
export type FlexFlow = 'row nowrap' | 'row wrap' | 'row wrap-reverse' | 'row-reverse nowrap' | 'row-reverse wrap' | 'row-reverse wrap-reverse' | 'column nowrap' | 'column wrap' | 'column wrap-reverse' | 'column-reverse nowrap' | 'column-reverse wrap' | 'column-reverse wrap-reverse';
修改后低版本TypeScript可正常编译,且FlexFlow类型的语义与原代码完全一致。
内容的提问来源于stack exchange,提问作者Krzysztof Guć
相关产品推荐
相关产品推荐

