【发布时间】:2018-08-01 01:12:51
【问题描述】:
我通过react-native-sqlite-storage 使用 SQLite 并尝试使用 TypeScript。
但是 TypeScript 找不到某些类型。造成问题的代码:
db.transaction((tx: Transaction) => {
tx.executeSql('SELECT * FROM movies', [], (tx: Transaction, results: ResultSet) => {
console.log("Query completed");
});
});
TypeScript 错误:
$ ./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) => {
~~~~~~~~~
这很疯狂,因为Transaction接口定义为here in DefinitelyTyped,所以应该可以找到。正确找到 react-native-sqlite-storage 提供的其他函数的类型。
发生了什么事?怎么可能从同一个类型文件中找到一些类型和另一些类型?
为了重现问题,我所有的项目文件都是here。
【问题讨论】: