如何在Typescript中实现aws.sdk.ts文件?

Pra*_*ara 5 javascript amazon-s3 amazon-web-services typescript

我已经尝试在我的mainmodule.ts文件中使用aws-sdk.ts文件了.但得到未定义的错误.

/// <reference path="aws.sdk.ts" />
import * as AWS from 'aws.sdk';
var typeScriptViewModel = function (first, last) {
    var self = this;
    AWS.Config({
        accessKeyId: 'ABC',
        secretAccessKey: 'ABCSECRET'
    });

    AWS.config.region = 'us-east-1'; 

   // many more usage of AWS. but got stuck on the first implementation itself.
   //var bucket = new AWS.S3({
   //         params: {
   //             Bucket: bucketName, Prefix: path, Delimiter: '/'
   //         }
   //     });
}
Run Code Online (Sandbox Code Playgroud)

它抛出一个错误,说"Uncaught TypeError:无法读取未定义的属性'配置'".

任何人都可以指导我如何使用aws.sdk.ts使用s3桶?我是Typescript的新手.

Rem*_*sen 0

不完全确定这是问题所在,但您的参考应该是:

/// <reference path="aws.sdk.d.ts" />
Run Code Online (Sandbox Code Playgroud)

代替:

/// <reference path="aws.sdk.ts" />
Run Code Online (Sandbox Code Playgroud)

然后您将能够导入:

import * as AWS from 'aws.sdk';
Run Code Online (Sandbox Code Playgroud)

确保您已安装这两个类型定义:

$ typings install --global --save dt~aws-sdk
Run Code Online (Sandbox Code Playgroud)

和 npm 模块:

$ npm install --save aws-sdk
Run Code Online (Sandbox Code Playgroud)

更新

您的文件夹外部有typings.jsonawsdemo,但您也在使用packages.config(Visual Studio 管理.d.ts文件的方式):

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="aws-sdk.TypeScript.DefinitelyTyped" version="1.9.4" targetFramework="net451" />
  <package id="node.TypeScript.DefinitelyTyped" version="3.0.0" targetFramework="net451" />
  <package id="RequireJS" version="2.2.0" targetFramework="net451" />
  <package id="requirejs.TypeScript.DefinitelyTyped" version="0.4.3" targetFramework="net451" />
</packages>
Run Code Online (Sandbox Code Playgroud)

您不能使用 nuget 和打字,您需要使用两者之一。

我建议您遵循官方教程。本教程解释了如何安装 Angular 并忽略该部分并安装 aws-sdk。(您可能还需要教程中提到的 es6-shim)。