私はavaのテストコンテキストを入力したいと思うので、avaを使用しています(私は2以上を使用することはできませんのでリンクはありません)。それはtyped as any
in ava's definition fileです。後続の変数宣言は、同じ型でなければなりません。 any
私は特にしたいことはtypescriptですコンパイラはt.context
は、次のテストでタイプ{foo: number}
であることを知っているということです。
import test from 'ava'
test.beforeEach((t) => {
t.context = { foo: 5 }
})
test('Is context typed', (t) => {
// uncaught typo
t.is(t.context.fooo, 5)
})
私はこれを行うためにdeclaration mergingを使用しようとしましたが、それはTS2403: Subsequent variable declarations must have the same type. Variable 'context' must be of type 'any', but here has type '{ foo: number; }'.
で失敗します。
declare module 'ava' {
interface ContextualTestContext {
context: {
foo: number,
}
}
}
test.beforeEach((t) => {
t.context = { foo: 5 }
})
test('Is context typed', (t) => {
// uncaught ypo
t.is(t.context.fooo, 5)
})
すべての時間そうのようなコンテキストをキャストせずにこれを行う方法はあります
@despairblueあなたのユースケースの問題を提起できますか?おそらく 'test()'シグネチャでジェネリックを受け入れることができます。 –
@MarkWubbenありがとう、私はここでそれを開いたhttps://github.com/avajs/ava/issues/1291 – despairblue
技術的に動作する@ FinnO、私は 'test'関数自体で定義された関数を使用したい場合(' test.beforeEach')すべての宣言を再定義する必要があります。約1700ものものがあります。 – despairblue