javascript - Hur man använder cordova-plugins med typescript
Jag håller på med en app för Android med Cordova och Typescript. Jag kan inte få Cordova-plugins att fungera med det, även om det fungerade när jag gjorde det endast med Javascript. Just nu försöker jag konvertera min gamla Javascript-kod till Typescript och organisera den med moduler, men jag känner mig inte bekväm med det.
Till exempel med detta cordova-plugin-sms får jag fortfarande detta fel: www/js/manageSMS.ts(23,13): error TS2304: Cannot find name 'SMS', både i min IDE (PHPStorm) och i konsolen när jag försöker köra appen. Pluginet är korrekt installerat, och jag lyckades få det att fungera tidigare med Javascript. Det finns inga typer för detta plugin, men jag kan fortfarande använda det, eller hur?
Jag har två ts-filer, en index.ts (huvud) och en manageSMS.ts (modul).
Här är index.ts :
import {SMSManager} from "./manageSMS";
export class CordovaApp {
constructor() {
document.addEventListener('deviceready', this.onDeviceReady, false);
let blockSentences = document.querySelector('#blockSentences');
}
onDeviceReady() {
console.log("The device is ready");
let sms = new SMSManager();
}
}
let instance = new CordovaApp();
Här är min manageSMS.ts :
export class SMSManager {
constructor() {
let filter = {
box : 'inbox',
maxCount : 20,
};
}
getAllSMS(filter) {
if (SMS) SMS.listSMS(filter, function(data){
console.log(data);
}, function(err){
console.log('error list sms: ' + err);
});
}
}
Min config.ts :
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"target": "es5",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [
"es6",
"dom"
],
"removeComments": true,
"noImplicitAny": false,
"allowJs": false,
"forceConsistentCasingInFileNames": true,
"typeRoots": [
"node_modules/@types"
]
},
"exclude": [
"node_modules",
"plugins",
"platforms",
"typings",
".idea"
]
}
Låt mig veta om du behöver någon fler fil.