import dialogs from "tns-core-modules/ui/dialogs";
export default {
methods: {
onButtonTap() {
console.log("Button was pressed");
prompt({
title: "Email Prompt",
message: "Provide your email address:",
okButtonText: "OK",
cancelButtonText: "Cancel",
defaultText: "name@domain.com",
inputType: dialogs.inputType.email
}).then(result => {
console.log(`Dialog result: ${result.result},
text: ${result.text}`);
});
}
},
}
But Vetur is giving following Typescript error.
Argument of type '{ title: string; message: string; okButtonText: string; cancelButtonText: string; defaultText: string; inputType: string; }' is not assignable to parameter of type 'string'.
This is just example code in nativescript-vue prompt documentation but typescript adaption.
forgotPassword() {
prompt('Your message to the user', 'Suggested user input').then(result => {
console.log(`Dialog result: ${result.result}, text: ${result.text}`);
});
}
Vetur Error:
Property 'then' does not exist on type 'string'.
It was a miss leading of documentation. There is no API called prompt. It should be dialogs.prompt. Correct example
<script lang="ts">
import * as dialogs from "tns-core-modules/ui/dialogs";
export default {
methods: {
onButtonTap() {
console.log("Button was pressed");
dialogs.prompt({
title: "Email Prompt",
message: "Provide your email address:",
okButtonText: "OK",
cancelButtonText: "Cancel",
defaultText: "name@domain.com",
inputType: dialogs.inputType.email
}).then(result => {
console.log(`Dialog result: ${result.result},
text: ${result.text}`);
});
}
},
data() {
return {};
}
};
</script>