我想从{strong>功能范围中排除private constructor
。
实际上,我更喜欢在private constructor
中使用Factory Pattern
。
示例代码
class Instance { }
class InstanceA extends Instance {
public constructor() { super(); }
}
class InstanceB extends Instance {
public constructor() { super(); }
}
class InstanceC extends Instance {
public constructor() { super(); }
}
class Factory {
private constructor() {
/* I want to exclude this constructor */
}
public static createInstance(option: number): Instance {
switch(option) {
case 1:
return new InstanceA();
case 2:
return new InstanceB();
case 3:
return new InstanceC();
default:
return undefined;
}
}
}
class ClientCode {
private name: string;
private age: number;
private myInstance: Instance;
public constructor(name: string,age: number,option: number) {
this.name = name;
this.age = age;
this.myInstance = Factory.createInstance(option);
}
public foo(): void {
/* do something */
}
}
nyc
选项
"nyc": {
"cache": false,"extension": [
".ts",".tsx"
],"include": [
"script/**/*.ts"
],"exclude": [
"**/*.d.ts","script/entries/","**/GlobalEnums.ts"
],"require": [
"ts-node/register/transpile-only","source-map-support/register"
],"reporter": [
"html","text","text-summary"
],"temp-dir": "./coverage/.nyc_output"
}
正如我在comment
中提到的,我想排除private constructor
。
这会使我的覆盖率降低。
我该如何排除呢?