我尝试在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: '/'
// }
// });
}
它抛出一个错误,说&#34; Uncaught TypeError:无法读取属性&#39; Config&#39;未定义&#34;。
任何人都可以指导我如何使用aws.sdk.ts使用s3桶吗? 我是打字稿中的新手。
答案 0 :(得分:0)
不完全确定这是问题,但您的参考应该是:
/// <reference path="aws.sdk.d.ts" />
而不是:
/// <reference path="aws.sdk.ts" />
然后你就可以导入:
import * as AWS from 'aws.sdk';
确保您已安装两种类型定义:
$ typings install --global --save dt~aws-sdk
和npm模块:
$ npm install --save aws-sdk
您的awsdemo
文件夹之外有typings.json,但您还使用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>
您无法使用nuget和typings来使用其中一种。
我建议你按照official tutorial进行操作。本教程解释了如何安装angular ignore该部分并安装aws-sdk。 (您可能还需要教程中提到的es6-shim)。
答案 1 :(得分:0)
有许多声明文件(.d.ts)可供使用,但我们假设您使用以下声明文件:
https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/aws-sdk
你可以这样做:
import * as AWS from 'aws-sdk';
var typeScriptViewModel = function (first, last) {
const options = {
accessKeyId: 'ABC',
secretAccessKey: 'ABCSECRET',
region: "us-east-1"
};
let s3 = new AWS.S3(options);
// many more usage of AWS here
// (http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html)
let params = {
Bucket: 'STRING_VALUE' /* required */
};
s3.getBucketLocation(params, (err, data) => {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
}
答案 2 :(得分:0)
在角度或离子项目中运行:
npm install aws-sdk --save
在开始在项目中使用这些TypeScript定义之前,您需要确保您的项目满足以下一些要求:
npm install --save-dev @types/node