我为greeter.ts创建了一个定义文件,然后创建了许多其他* .ts文件。当我运行tsc --project ./tsconfig.tsc.json --declaration
时,它为所有其他* .ts文件生成* .d.ts文件,但是我手动创建的greeter.d.ts除外。它拒绝覆盖它。所以,我删除了greeter.d.ts并再次运行tsc。即使文件不再存在,它也会输出相同的错误error TS5055: Cannot write file '~/project/greeter.d.ts' because it would overwrite input file.
。
那么,为什么tsc能够覆盖之前生成的文件,而不是我创建的文件?更重要的是,它仍然认为我删除后手动创建的* .d.ts文件存在。从逻辑上讲,某个地方有一个缓存,但我还没有找到有关它的信息。
是否有以前转换过的文件的缓存?
答案 0 :(得分:0)
我怀疑它是否会创建缓存。我发现它“知道”我手动创建了一个定义文件。在我的greeter.ts中,我这样引用它:
/// <reference path="greeter.d.ts" />
export class Greeter {
public greeting: string;
constructor() {
console.log('Greeter()');
}
public activate() {
this.greeting = 'hello worldz';
}
}
删除引用清除了错误,tsc能够创建文件。