Weboldal keresés

typescript - Egyéni típus 'Module not found' hibát jelez Angularban


Szerkesztés 2

nav-bar.component.ts

...
import { ILink } from '../nav-bar';
...

nav-bar-link.component.ts

...
import { ILink } from '../../nav-bar';
...

Szerkesztés 1

A Webstorm-ot használom, amely felismeri a típust, amikor a nav-bar-link.component.ts fájlban használom, és a felismerés alatt azt értem, hogy ha Ctrl-kattintok a típusra, akkor a definíciós fájlhoz visz. Az összes fordításához az ng build-et használom, amely a következő tsconfig.json-t is használja.

tsconfig.json

{  
    "compilerOptions": {
        "baseUrl": "",
        "declaration": false,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "lib": [
            "es2016",
            "dom"
        ],
        "mapRoot": "./",
        "module": "es6",
        "moduleResolution": "node",
        "outDir": "../dist/out-tsc",
        "sourceMap": true,
        "target": "es5",
        "typeRoots": [
            "../node_modules/@types"
        ]
    },
    "files": [
        "main.ts",
        "polyfills.ts"
    ],
    "include": [
        "**/client/**/*.ts",
        "**/*.d.ts"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}

Megpróbáltam létrehozni egy typings mappát egy index.d.ts fájlal benne az összes általam létrehozott interfésszel, de még ezután is a nav-bar-link komponens ugyanazt a hibát adja, amit eredetileg leírtam.

Eredeti bejegyzés

Megpróbálom megosztani a típusdefiníciós fájlokat a szerver és a kliens között, ezért a definíciós fájlt a kliens és a szerver fájlok fölé helyeztem. Mindkét Angular komponensbe importálom a típusdefiníciót, de a nav-bar-link ezt a hibát dobja.

ERROR in ./src/app/nav-bar/client/link/nav-bar-link.component.ts  
Module not found: Error: Can't resolve '../../nav-bar' in 'D:\example-app\src\app\nav-bar\client\link'  
@ ./src/app/nav-bar/client/link/nav-bar-link.component.ts 11:0-38  
@ ./src/app/app.module.ts  
@ ./src/main.  
@ multi ./src/main.ts  

Mappaszerkezet

  • navigációs-sáv/

    • nav-bar.d.ts
    • szerver/
    • ügyfél/

      • nav-bar.component.ts
      • nav-bar.component.html
      • nav-bar.component.scss
      • link/

        • nav-bar-link.component.ts
        • nav-sáv-hivatkozás.component.html
        • nav-bar-link.component.scss

nav-bar.d.ts

export interface ILink {
    title: string;
    ...
}

Megpróbáltam áthelyezni a nav-bar-linket egy külön "modulba", tehát a nav-bar melletti testvér mappába, és ez még mindig ugyanazt a hibát dobja, amikor megpróbálom importálni az ILinket.

Hogyan tudom azt az interfészt mindkét komponensben használni anélkül, hogy azt a hibát dobja?

Kapcsolódó cikkek