Sep*_*eed 14 compiler-optimization typescript
我收到错误
“该节点的推断类型超出了编译器序列化的最大长度。需要显式类型注释。”
几个小时前,这工作得很好……我所做的任何更改(更新 npm 和节点)对于为什么会发生这种情况都没有任何意义。
我绝对不能给出显式的类型注释。
我尝试过的:
这是我对我正在尝试制作的工具的第三次完整重写,因为 Typescript 在这方面一直落后。
经过三次完全重写、数百个小时和极大的努力,在这个错误开始出现之前,一切都工作正常一整天。
我尝试更新所有内容(typescript、node、npm...没有其他可更新)
我尝试更新 tsconfig:
"compilerOptions": {
"disableSizeLimit": true,
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做。我能想到的唯一选择是将 Typescript 扔进垃圾桶并在编译时进行类型检查......我想这对于这个项目来说是很好的。
在这个项目的第二次尝试中,我询问了更好的缓存
"declaration": false,
tsconfig.json在我的作品中将声明设置为 false
还在 github 上找到了相关主题 https://github.com/microsoft/TypeScript/issues/43817
这是递归造成的,我也是这样
更新:显然这是真正的解决方案:
type Builder<T> = {
withComment: (comment: string) => Builder<T & { comment: string }>,
withSpecialComment: () => Builder<T & { comment: string }>,
withTrackingNumber: (tracking: number) => Builder<T & { tracking: number }>,
build: () => T
};
const Builder: <T extends {}>(model: T) => Builder<T> = <T extends {}>(model: T) => ({
withComment: (comment: string) => Builder({ ...model, comment }),
withSpecialComment: () => Builder(model).withComment('Special comment'),
withTrackingNumber: (tracking: number) => Builder({ ...model, tracking }),
build: () => model });
const a = Builder({});
Run Code Online (Sandbox Code Playgroud)
https://github.com/microsoft/TypeScript/issues/43817#issuecomment-827746462
有了这个你不需要将声明设置为 false
| 归档时间: |
|
| 查看次数: |
11328 次 |
| 最近记录: |