Typescript 打字脚本+;react原生sqlite存储=>;错误TS2304:找不到名称';交易';

Typescript 打字脚本+;react原生sqlite存储=>;错误TS2304:找不到名称';交易';,typescript,react-native,Typescript,React Native,我正在通过使用SQLite并尝试使用TypeScript 但是TypeScript找不到某些类型。导致故障的代码: db.transaction((tx: Transaction) => { tx.executeSql('SELECT * FROM movies', [], (tx: Transaction, results: ResultSet) => { console.log("Query completed"); }); }); 键入脚本错误: $ ./no

我正在通过使用SQLite并尝试使用TypeScript

但是TypeScript找不到某些类型。导致故障的代码:

db.transaction((tx: Transaction) => {
  tx.executeSql('SELECT * FROM movies', [], (tx: Transaction, results: ResultSet) => {
    console.log("Query completed");
  });
});
键入脚本错误:

$ ./node_modules/.bin/tsc --alwaysStrict --skipLibCheck
App.tsx:18:24 - error TS2304: Cannot find name 'Transaction'.

18    db.transaction((tx: Transaction) => {
                          ~~~~~~~~~~~

App.tsx:19:54 - error TS2304: Cannot find name 'Transaction'.

19       tx.executeSql('SELECT * FROM movies', [], (tx: Transaction, results: ResultSet) => {
                                                        ~~~~~~~~~~~

App.tsx:19:76 - error TS2304: Cannot find name 'ResultSet'.

19       tx.executeSql('SELECT * FROM movies', [], (tx: Transaction, results: ResultSet) => {
                                                                              ~~~~~~~~~
这很疯狂,因为定义了
事务
接口,所以应该找到它。可以正确找到react原生sqlite存储提供的其他函数的类型

发生了什么事?如何从同一类型文件中找到某些类型和其他类型?


为了重现此问题,我的所有项目文件都是。

缺少的类型是
react native sqlite storage
模块的成员,并且您已经以
sqlite
的名称导入了整个模块:

import SQLite from 'react-native-sqlite-storage'
因此,您必须对以下类型进行限定:

db.transaction((tx: SQLite.Transaction) => {
  tx.executeSql('SELECT * FROM movies', [], (tx: SQLite.Transaction, results: SQLite.ResultSet) => {
    console.log("Query completed");
  });
});

就像你对SQLite.openDatabase的要求一样,谢谢。我应该想到的。。。我是TypeScript新手,在教程中没有看到名称空间的内容。