Как использовать определения AWD sdk для TypeScript?

Я пытаюсь написать клиент SES TypeScript, используя файл определений AWS, загруженный из https://github.com/borisyankov/DefinitelyTyped/blob/master/aws-sdk/aws-sdk.d.ts

Вот что я пробовал:

/// <reference path="../typings/aws-sdk.d.ts" />
var AWS = require('aws-sdk'); 
var ses:SES = new AWS.SES();

Вот ошибка, которую я получаю:

/usr/local/bin/tsc --sourcemap SesTest.ts
SesTest.ts(3,9): error TS2304: Cannot find name 'SES'.

Process finished with exit code 2

Я не могу найти документацию о том, как это сделать. Пожалуйста, помогите!

Ответ 1

Изменить на:

import AWS = require('aws-sdk'); 
var ses:AWS.SES = new AWS.SES();

Примечание: если import неясно, вы, вероятно, захотите прочитать модули: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

СОВЕТ: всегда хорошая идея увидеть тестовый файл для предполагаемого использования: https://github.com/borisyankov/DefinitelyTyped/blob/master/aws-sdk/aws-sdk-tests.ts

Ответ 2

Я думаю, что более подходящий способ сделать это

import { <ServiceName> } from 'aws-sdk';

например

import { DynamoDB } from 'aws-sdk';

с последующим

this.client = new DynamoDB(); в классе.

Я говорю, что это более уместно, потому что он использует синтаксис импорта TypeScript.

Также здесь есть четкое объяснение - от AWS - как использовать TS с AWS SDK.