Angular can't compile Typescript's mapped type modifiers
我有一个node.js项目,在这里我成功使用了自定义映射类型
1 2 3 | export type Mutable< T > = { -readonly [P in keyof T]: T[P]; }; |
但是如果我将相同的代码添加到Angular 6项目中,编译将失败:
ERROR in src/assets/scripts/utils.ts(2,5): error TS1131: Property or signature expected.
src/assets/scripts/utils.ts(2,27): error TS1005: ']' expected.
src/assets/scripts/utils.ts(2,28): error TS1005: ';' expected.
src/assets/scripts/utils.ts(14,29): error TS1128: Declaration or statement expected.
src/assets/scripts/utils.ts(3,1): error TS1128: Declaration or statement expected.
为什么会发生这种情况,我该如何解决?
谢谢大家!!
最新的
您使用的是较早版本的打字稿(2.7或更低版本)。 显式删除
您可以使用技巧来实现先前版本的打字稿中的删除只读结果,如下所述
1 2 | type MutableHelper<T, TNames extends string> = { [P in TNames]: (T & { [name: string]: never })[P]}; type Mutable< T > = MutableHelper<T, keyof T>; |