Getting error TS2304: Cannot find name 'Buffer'

ayyappa maddi picture ayyappa maddi · Aug 10, 2016 · Viewed 51.3k times · Source

I am trying to do base64 encode in NodeJS using TypeScript.

Following code working fine in JavaScript.

When I am writing same thing in TypeScript and compiling, I am getting Buffer is not find error.

var base64Policy = new Buffer(stringPolicy, 'utf-8').toString('base64');

Can someone help me to do same thing in TypeScript.

Answer

DarkKnight picture DarkKnight · Aug 10, 2016

Add this line at top:

declare const Buffer

and it should compile without errors.

Declarations is required to use node built in libraries or other global objects, you can manually declare it like above.

With new version of Typescript, you can also use official declaration files:

npm i -g typescript@next
npm i --save-dev @types/node

for other libraries, install @types/library_name.

more details: Improve Declaration File Acquisition, The Future of Declaration Files