我需要在Angular 2 TS应用程序中解码base64字符串。我用npm安装了js-base64。 Base64 Github project
npm install --save @types/js-base64
当我在我的应用程序中包含该模块时,我收到以下错误
app/app.module.ts(15,26): error TS2306: File '<fullpath removed>/src/main/resources/static/node_modules/@types/js-base64/index.d.ts' is not a module.
app/login/authentication.service.ts(4,24): error TS2306: File '<fullpath removed>/src/main/resources/static/node_modules/@types/js-base64/index.d.ts' is not a module.
system.js.config.js import
'@types/js-base64': 'npm:@types/js-base64',
app.module.ts import
import { Base64 } from '@types/js-base64';
我可以使用以下内容验证该文件是否存在:
// Type definitions for js-base64 v2.1.9
// Project: https://github.com/dankogai/js-base64
// Definitions by: Denis Carriere <https://github.com/DenisCarriere>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/**
## TODO
add methods:
- [x] encode
- [x] encodeURI
- [x] decode
- [ ] atob
- [ ] btoa
- [ ] fromBase64
- [ ] toBase64
- [ ] utob
- [ ] btou
- [ ] noConflict
*/
declare module 'js-base64' {
namespace JSBase64 {
const Base64: Base64Static
interface Base64Static {
/**
* .encode
* @param {String} string
* @return {String}
*/
encode(base64: string): string;
/**
* .encodeURI
* @param {String} string
* @return {String}
*/
encodeURI(base64: string): string
/**
* .decode
* @param {String} string
* @return {String}
*/
decode(base64: string): string
/**
* Library version
*/
VERSION:string
}
}
export = JSBase64
}
此文件是否为有效模块?如果是这样,我错过了什么?如果没有,有人能指出我如何在Angular2 TS中解码base 64字符串的例子吗?谢谢!
修改
我找到了两个解决方法。
1。您可以在Angular 2 TS项目中包含vanilla js脚本
服务/组件:
declare var Base64: any;
的index.html
<script src="js/base64.js"></script>
如果JS库有一个构造函数,那么应该可以工作:
this.base64 = new Base64();
2。更好的解决方案是使用lib.d.ts中的本机TypeScript函数
组件/服务
let claims = atob(encodedClaims);
这将解码base64字符串。还有编码功能。
祝你好运!