title: Cannot find name 'Symbol' when compiling typescript
body: <p>I'm receiving the following error when trying to compile a ts file:</p>
  
  <p><code>node_modules/@types/node/util.d.ts(121,88): error TS2304: Cannot find name 'Symbol'.</code></p>
  
  <p>I did some reading and saw that this can be linked to not having the correct target or lib options declared in the <code>tsconfig.json</code> file.  I've tried a few different things such as changing the target to "es15" and including "es2015" in the lib, but I am not having much luck.</p>
  
  <p>I am using this tutorial as a basis for my project:
  <a href="https://itnext.io/building-restful-web-apis-with-node-js-express-mongodb-and-typescript-part-1-2-195bdaf129cf" rel="nofollow noreferrer">https://itnext.io/building-restful-web-apis-with-node-js-express-mongodb-and-typescript-part-1-2-195bdaf129cf</a></p>
  
  <p>File structure:</p>
  
  <pre><code>dist
  lib
  ├──controllers
  |  ├──controller.ts
  |
  ├──models
  |  ├──model.ts
  |
  ├──routes
  |  ├──routes.ts
  |
  ├──app.ts
  ├──server.ts
  node_modules
  package.json
  tsconfig.json
  </code></pre>
  
  <p>tsconfig.json:</p>
  
  <pre><code>{
    "compilerOptions": {
        "target": "es2017",
        "module": "commonjs",
        "declaration": false,
        "noImplicitAny": false,
        "noImplicitThis": false,
        "removeComments": true,
        "experimentalDecorators": true,
        "strictNullChecks": true,
        "moduleResolution": "node",
        "pretty": true,
        "sourceMap": true,
        "allowJs": true,
        "noLib": false,
        "jsx": "react",
        "outDir": "./dist",
        "lib": ["es2017"],
        "baseUrl": "./lib"
    },
    "include": [
        "lib/**/*.ts"
    ],
    "exclude": [
        "node_modules"
    ]
  }
  </code></pre>
  
  <p>model.ts:</p>
  
  <pre><code>import * as mongodb from 'mongodb'
  import * as fs from 'fs'
  
  const filepath = __dirname + '/../file.txt'
  
  function asyncReadFile(filepath: string, type: string) {
    return new Promise((resolve, reject) =&gt; {
      fs.readFile(filepath, (err, data) =&gt; {
        console.log("Reading file...")
        err ? reject(err) : resolve(data)
      })
    })
  }
  
  asyncReadFile(filepath, 'utf-8')
  </code></pre>