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?