vuejs2 - Hur man använder globala Typescript-typdeklarationer i Vue SFC?


I Vue2 + Typescript-projekt har jag en global.d.ts-fil med några typer som den här:

global.d.ts

type Nullable<T> = T | undefined | null;

Det fungerar bra (utan att uttryckligen exportera/importera typer) när det används i vanliga .ts-filer:

misc.ts

const answer: Nullable<Answer> = null;

Men det fungerar inte inuti .vue-filer:

component.vue

<script lang="ts">
import Vue from 'vue';

export default Vue.extend({
  data: () => ({
    answer: null as Nullable<Answer> // 'Nullable' is not defined
  })
});
</script>

Triggevågs-saken fungerar inte heller:

<script lang="ts">
/// <reference path="../../types/global.d.ts" />

import Vue from 'vue';

export default Vue.extend({
  data: () => ({
    answer: null as Nullable<Answer> // 'Nullable' is not defined
  })
});
</script>

Finns det någon lösning på detta?

Svar #1

Jag löste det genom att lägga till sökvägen till min katalog med global.d.ts-filen i tsconfig.json:

{
  "compilerOptions": {
    "typeRoots": [
      "./types"
    ]
  }
}

Relaterade artiklar