Dans la version 33 de l'expo sdk, sqlite a été déplacé vers son propre package, expo-sqlite, et maintenant je ne peux pas charger les types.
Au lieu de
Cannot find namespace 'SQLite'.
3 Réponses :
Vous ne semblez pas avoir téléchargé le module. Installez le module et appliquez-le.
npm install expo-sqlite
J'ai installé le module. Le code s'exécute, il n'est tout simplement pas tapé correctement
@Daniel Vous pouvez essayer npm install La méthode indiquée dans le hub de drapeau doit être npm .
J'ai rencontré le même problème et créé un fichier de déclaration de type qui a résolu le problème pour moi.
https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html
J'ai copié les déclarations de ce package https://www.npmjs.com/package/@types/expo
Il s'agit de la déclaration https : //github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/expo/v31/index.d.ts#L2467
Mon projet a maintenant un expo-sqlite .d.ts dans le dossier src qui ressemble à
declare module 'expo-sqlite' {
export namespace SQLite {
type Error = any;
interface Database {
transaction(
callback: (transaction: Transaction) => any,
error?: (error: Error) => any, // TODO def of error
success?: () => any
): void;
}
interface Transaction {
executeSql(
sqlStatement: string,
arguments?: string[] | number[],
success?: (transaction: Transaction, resultSet: ResultSet) => any,
error?: (transaction: Transaction, error: Error) => any
): void;
}
interface ResultSet {
insertId: number;
rowAffected: number;
rows: {
length: number;
item: (index: number) => any;
_array: HashMap[];
};
}
function openDatabase(
name:
| string
| {
name: string;
version?: string;
description?: string;
size?: number;
callback?: () => any;
},
version?: string,
description?: string,
size?: number,
callback?: () => any
): any;
}
}
Des types manquaient dans le package expo-sqlite. J'ai ouvert un problème sur la page GitHub d'Expo, et le problème a été résolu.
Problème GitHub: https://github.com/expo/expo/issues/5264 < / a>
Demande d'extraction Github: https://github.com/expo/expo/pull/5544