【问题标题】:AWS sdk can't be referred in angular-cli projectAWS sdk 不能在 angular-cli 项目中引用
【发布时间】:2017-01-03 04:25:07
【问题描述】:

我尝试使用 aws sdk 并在遵循官方 aws-sdk 链接 (https://www.npmjs.com/package/aws-sdk) 后在一个全新的 angular2 cli 项目中遇到了这个 typescript 构建错误

ERROR in ./src/app/service/aws.service.ts
Module build failed: Error: /Users/slin/pan/protego/crossbow/src/app/service/aws.service.ts (26,13): Argument of type '{ region: string; accessKeyId: string; secretAccessKey: string; }' is not assignable to parameter of type 'ConfigurationOptions & ConfigurationServicePlaceholders & APIVersions'.
  Object literal may only specify known properties, and 'accessKeyId' does not exist in type 'ConfigurationOptions & ConfigurationServicePlaceholders & APIVersions'.)
    at _checkDiagnostics (/Users/slin/pan/protego/crossbow/node_modules/@ngtools/webpack/src/loader.js:116:15)
    at /Users/slin/pan/protego/crossbow/node_modules/@ngtools/webpack/src/loader.js:141:17
    at tryCatch (/Users/slin/pan/protego/crossbow/node_modules/es6-promise/dist/es6-promise.js:410:12)
    at invokeCallback (/Users/slin/pan/protego/crossbow/node_modules/es6-promise/dist/es6-promise.js:425:13)
    at publish (/Users/slin/pan/protego/crossbow/node_modules/es6-promise/dist/es6-promise.js:393:7)
    at flush (/Users/slin/pan/protego/crossbow/node_modules/es6-promise/dist/es6-promise.js:121:5)
    at nextTickCallbackWith0Args (node.js:415:9)
    at process._tickCallback (node.js:344:13)
 @ ./src/app/app.module.ts 17:0-51
 @ ./src/main.ts
 @ multi main

我的代码就这么简单:

import { Injectable } from "@angular/core";
import * as AWS from 'aws-sdk';

@Injectable()
export class AwsService {
    loggedin: boolean;
    aws_accessKeyId: string;
    aws_secretAccessKey: string;
    aws_region: string;

    constructor() {
        this.loggedin = false;
        this.aws_region = 'us-west-2';
    }

    login(
    ) {
        AWS.config.update({
            region: this.aws_region,
            accessKeyId: this.aws_accessKeyId,
            secretAccessKey: this.aws_secretAccessKey
        });
        this.loggedin = true;
        console.log(this.aws_accessKeyId, this.aws_secretAccessKey);
    }
}

aws-sdk 真的适用于 typescript 吗?还是我错过了 angular2-cli 项目的一些设置?这是 aws-sdk 不支持 es6 的问题吗?

感谢任何帮助!

【问题讨论】:

    标签: angular aws-sdk angular-cli


    【解决方案1】:

    好的,我发现了我的问题。它实际上只是按照 angular-cli 指令工作。我的问题是 aws latest API 已更改,但他们还没有更新他们的 api 文档。

    ^2.7.11 语法应该是:

        AWS.config.update({
            region: this.aws_region,
            credentials: {
                accessKeyId: this.aws_accessKeyId,
                secretAccessKey: this.aws_secretAccessKey
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 2018-01-08
      • 2017-01-01
      • 1970-01-01
      相关资源
      最近更新 更多