My code that I have looks like this:
class UserService implements IUserService {
data: IUserServiceData = {
expirationDate: null,
isAuthenticated: false,
};
static $inject = [];
constructor () {}
isAuthenticated = () => {
if (this.data.isAuthenticated && !this.isAuthenticationExpired(this.data.expirationDate)) {
return true;
} else {
try {
this.retrieveSavedData();
} catch (e) {
return false;
// throw new NoAuthenticationException('Authentication not found');
}
return true;
}
};
// Original Javascript code here
//function AuthenticationRetrievalException(message) {
// this.name = 'AuthenticationRetrieval';
// this.message = message;
//}
AuthenticationRetrievalException = (message) => {
this.name = 'AuthenticationRetrieval';
this.message = message;
}
retrieveSavedData = () => {
var savedData = this.utilityService.userCache.get('data');
if (typeof savedData === 'undefined') {
throw new AuthenticationRetrievalException('No authentication data exists');
} else if (isAuthenticationExpired(savedData.expirationDate)) {
throw new AuthenticationExpiredException('Authentication token has already expired');
} else {
this.data = savedData;
this.setHttpAuthHeader();
}
}
}
What should I do with the this. references that were in my JavaScript source before I started to try and convert it?
I don't know how to code this part in Typescript:
AuthenticationRetrievalException = (message) => {
this.name = 'AuthenticationRetrieval';
this.message = message;
}
I highly recommend you not creating your own Error classes in JavaScript(or TypeScript) and just use Error
(ref : How do I create a custom Error in JavaScript? )
But here is how you can do it in TypeScript. At the root level of your file ( not inside your class ):
function AuthenticationRetrievalError (message) {
this.name = "AuthenticationRetrievalError";
this.message = (message || "");
}
AuthenticationRetrievalError.prototype = Error.prototype;
Then then from inside your class :
throw new AuthenticationRetrievalError('foo');
If I understand you well and you want to trow an error with custom message, you can use class Error
like this:
throw new Error("Authentication not found");
But I am not sure if this is what you want to do.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.