Typescript将无法编译。完美!
我很难让webpack做到这一点。
名称空间/模块:
// MyNamespace.ts
export class MyClass
{
constructor()
{
console.log('MyClass');
}
}
增加它的文件:
// MyClassPatch.ts
import * as MyNamespace from './MyNamespace';
declare module './MyNamespace'
{
interface MyClass
{
Patch(): void;
}
}
MyNamespace.MyClass.prototype.Patch = function()
{
console.log('Patched');
};
另一个文件:
// index.ts
import * as MyNamespace from './MyNamespace';
//import './MyClassPatch'; notice that line!
const myClass = new MyNamespace.MyClass();
myClass.Patch();
它编译就可以了!当然,由于未导入MyClassPatch
,因此会引发运行时错误。
我已经创建了一个简单的仓库(https://github.com/chadiik/ts-ambient-declarations),尝试使用不同的Typescript加载器(因为我以为是该问题所在)。 npm脚本如下:
我需要对Webpack进行哪些配置更改?还是那是个错误?
PS:通过在我的 patch 文件名中添加* .patch.ts并在tsconfig中添加一个排除项,可以解决该问题:“ ** / *。patch.ts”,但这在vscode中添加了其他与智能感知有关的问题(在回购中添加了分支“ patch-exclude”)?
谢谢