Bru*_*oLM 6 mocha.js jasmine typescript jestjs
我遇到了一个常见的场景。我需要在beforeAll或每个中创建一个变量。
describe('some test', () => {
beforeAll(() => {
const foo = createFoo({}, {});
});
it('returns something', () => {
// how to access foo?
});
});
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我不能访问foo的it测试,因为它只存在内部的beforeAll范围。
为了能够访问我需要的地方,我必须foo在里面声明describe:
describe('', () => {
let foo;
Run Code Online (Sandbox Code Playgroud)
或使用
this.foo =
Run Code Online (Sandbox Code Playgroud)
这两种方法的问题是我丢失了类型信息。而且我没有这些函数的返回类型的显式接口。
有没有办法声明foo我以后可以访问它而不会丢失类型信息的地方?
您可以使用非空断言运算符( !) 来放宽非空约束。
describe('some test', () => {
let foo!: SomeType;
beforeAll(() => {
foo = createFoo({}, {});
});
it('returns something', () => {
expect(foo.bar).toBe(true);
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
685 次 |
| 最近记录: |