javascript - Typescript: Egenskapen 'DB' finns inte på typen 'Global'


I min src/app.ts har jag:

import DB from '../models'

Och i src/models/index.ts har jag:

export default (() => {
    if (global.DB) {
        return global.DB
    }
    ...
    // Do some other stuff
    return something

Min typings/global.d.ts har:

declare namespace NodeJS {
    export interface Global {
        DB: any;
    }
}

declare var DB: any;

Och slutligen, min tsconfig.json har:

{
    "compilerOptions": {
        "outDir": "./built",
        "allowJs": true,
        "target": "es6",
        "esModuleInterop": true,
        "sourceMap": true
    },
    "include": [
        "./src/**/*"
    ],
    "files": [
        "typings/*"
    ]
}

Men jag får fortfarande felet:

Error: src/models/index.ts(7,16): error TS2339: Property 'DB' does not exist on type 'Global'.

Vad gör jag fel?

Svar #1

Din tsconfig.json är förmodligen fel. Du använder både files och include för att specificera mönster. files är dock avsett att användas för specifika (relativa eller absoluta) sökvägar medan include kan användas med mönster.

Om du slår ihop de två sökvägarna till include, så här:

{
  "compilerOptions": {
      "outDir": "./built",
      "allowJs": true,
      "target": "es6",
      "esModuleInterop": true,
      "sourceMap": true,
  },
  "include": [
      "./src/**/*",
      "./typings/*"
  ]
}

dina filer bör kompileras.

Relaterade artiklar