2016-08-08 8 views
4

Ich habe versucht, aws-sdk.ts-Datei in meiner Datei mainmodule.ts a unten. Aber nicht definierter Fehler.Wie aws.sdk.ts Datei in Typescript zu implementieren?

/// <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: '/' 
    //   } 
    //  }); 
} 

Es wirft einen Fehler sagen: „Nicht abgefangene Typeerror: nicht Eigentum‚Config‘undefinierte lesen kann“.

Kann mir bitte jemand Anleitung, wie man s3 Eimer mit aws.sdk.ts verwenden? Ich bin neu in Typoskript.

Antwort

0

Nicht ganz sicher das das Problem zu sein, aber Ihre Referenz sein soll:

/// <reference path="aws.sdk.d.ts" /> 

Statt:

/// <reference path="aws.sdk.ts" /> 

Dann werden Sie in der Lage zu importieren:

import * as AWS from 'aws.sdk'; 

Stellen Sie sicher, dass Sie beide Typdefinitionen installiert haben:

$ typings install --global --save dt~aws-sdk 

Und das NPM-Modul:

$ npm install --save aws-sdk 

aktualisieren

Sie haben typings.json außerhalb Ihres awsdemo Ordner aber Sie sind auch mit packages.config (die Visual Studio Art und Weise .d.ts Dateien verwalten):

<?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> 

Sie können nuget und typings, die Sie benötigen, nicht verwenden f die beiden.

Ich würde Ihnen empfehlen, die official tutorial zu folgen. Das Tutorial erklärt, wie man angular ignore diesen Teil installiert und stattdessen aws-sdk installiert. (Sie werden wahrscheinlich auch das im Tutorial erwähnte es6-shim benötigen).

+0

https://github.com/Prashant-Kan/AwsDemo - Ich habe setzen ein Demo-Code hier. Bitte überprüfen Sie und lassen Sie es mich wissen. Ich habe versucht, /// tschüß umbenennen die Datei und ohne Umbenennung, aber fehlgeschlagen Ich habe versucht, die Typisierung und AWS-SDK, aber nicht erfolgreich. –

0

Es gibt viele Deklarationsdateien (.d.ts) zur Verfügung da draußen, aber nehmen wir an, dass Sie die folgende Erklärung Datei:

https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/aws-sdk

Sie können wie folgt tun:

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 
    }); 
} 
0

In Ihrem Winkel- oder ionischen Projektlauf:

npm install aws-sdk --save 

Bevor Sie beginnen können diese Typoskript Definitionen mit Ihrem Projekt verwenden, müssen Sie Ihr Projekt um sicherzustellen, dass einige dieser Anforderungen erfüllt:

npm install --save-dev @types/node 
Verwandte Themen