SQLite 新 Promise 的类型定义
Type definition of new Promise with SQLite
我是 Typescript 的新手,我在 Promise 的类型定义方面遇到了问题。另外,我是第一次使用 SQLite。 Typescript 建议我将 void 用于 resolve,但同时它说在 reject void is not assignable on type boolean 时。这是代码:
import * as SQLite from 'expo-sqlite';
const db = SQLite.openDatabase('address.db');
export const init = () => {
return new Promise<void>((resolve, reject) => {
db.transaction((tx) => {
tx.executeSql(`CREATE TABLE IF NOT EXISTS user (
name TEXT NOT NULL,
email TEXT NOT NULL,
password TEXT NOT NULL
)`,
[],
() => resolve(),
(_, err) => reject(err),
)
});
});
}
这是控制台上的错误:
“(_: SQLTransaction, err: SQLError) => void”类型的参数不可分配给 'SQLStatementErrorCallback' 类型的参数。
类型 'void' 不可分配给类型 'boolean'.
如果有人可以帮助我,我将不胜感激。提前致谢
我不知道这是否是正确的解决方案,但在这个定义后它停止抱怨:
(_, err): boolean | any => reject(err),
这是完整的代码:
import * as SQLite from 'expo-sqlite';
const db = SQLite.openDatabase('address.db');
export const init = () => {
return new Promise<void>((resolve, reject) => {
db.transaction((tx) => {
tx.executeSql(`CREATE TABLE IF NOT EXISTS user (
name TEXT NOT NULL,
email TEXT NOT NULL,
password TEXT NOT NULL
)`,
[],
() => resolve(),
(_, err): boolean | any => reject(err),
)
});
});
}
我是 Typescript 的新手,我在 Promise 的类型定义方面遇到了问题。另外,我是第一次使用 SQLite。 Typescript 建议我将 void 用于 resolve,但同时它说在 reject void is not assignable on type boolean 时。这是代码:
import * as SQLite from 'expo-sqlite';
const db = SQLite.openDatabase('address.db');
export const init = () => {
return new Promise<void>((resolve, reject) => {
db.transaction((tx) => {
tx.executeSql(`CREATE TABLE IF NOT EXISTS user (
name TEXT NOT NULL,
email TEXT NOT NULL,
password TEXT NOT NULL
)`,
[],
() => resolve(),
(_, err) => reject(err),
)
});
});
}
这是控制台上的错误: “(_: SQLTransaction, err: SQLError) => void”类型的参数不可分配给 'SQLStatementErrorCallback' 类型的参数。 类型 'void' 不可分配给类型 'boolean'.
如果有人可以帮助我,我将不胜感激。提前致谢
我不知道这是否是正确的解决方案,但在这个定义后它停止抱怨:
(_, err): boolean | any => reject(err),
这是完整的代码:
import * as SQLite from 'expo-sqlite';
const db = SQLite.openDatabase('address.db');
export const init = () => {
return new Promise<void>((resolve, reject) => {
db.transaction((tx) => {
tx.executeSql(`CREATE TABLE IF NOT EXISTS user (
name TEXT NOT NULL,
email TEXT NOT NULL,
password TEXT NOT NULL
)`,
[],
() => resolve(),
(_, err): boolean | any => reject(err),
)
});
});
}