我正在使用TypeScript编写React Native组件,并使用React NativeTesting Library对其进行测试。
我想在React Native组件上加一个testId属性,如下所示:
<TextInput testId="foo" />
然后在这样的测试中引用它:
it('receives a search string', () => {
const { getByTestId } = render(<FooComponent />);;
const textBox = getByTestId("foo");
fireEvent.changeText(textBox,"some fake text");
expect(textBox.value).toEqual("some fake text");
});
但是TypeScript不允许我在组件上放置testId
属性,因为当然,TypeScript正在向React Native询问有效属性,而React Nation对testId
一无所知;testId是@testinglibrary/areact-native的一部分。
如何让TypeScript识别添加的属性,如来自@testinglibrary/react-native的testId
。
发现问题。testId
应该是testID
。我只是简单的打字错误。
如果有人发现了这一点,问题不在于TypeScript根本不知道testID
属性。你不需要npm install @types/whatever
。它们已经被认为是安装RNTL的一部分。