Typoskript: Wie kann ein Modul "gefunden" werden, aber nicht behoben ist? Was hat das zu tun mit 'noResolution'?
Wenn ich mit tsc in der 'proj' Verzeichnis mit --traceResolution, sehe ich das Modul 'foo' ist "erfolgreich gelöst", aber nicht "gefunden":
======== Module name 'foo' was successfully resolved to 'C:/dev/ts-options/typings/foo/index.d.ts'. ========
main.ts(1,18): error TS2307: Cannot find module 'foo'.
Einstellung "noResolve": true
in tsconfig.Compiler-Optionen macht die Fehler Weg. Aber ich bin supr-verwirrt!
Frage 1: Was ist der Unterschied zwischen "Auflösung" und "finden"? Ich dachte, diese waren Synonyme
Frage 2: Warum ist 'noResolve' beeinflussen dieses Verhalten? Was bedeutet noResolve eigentlich tun? TS compiler-Optionen docs sagen "nicht hinzufügen dreifach-slash Hinweise oder Modul importieren Ziele, um die Liste der zusammengestellten Dateien." aber ich weiß nicht, was das bedeutet.
Mit diesem Verzeichnis Struktur
- /c/dev/ts-Optionen/
- Testungen/
- foo
- index.d....ts
- foo
- proj dies ist, wo ich bin mit tsc
- tsconfig.json
- main.ts
- Testungen/
proj/tsconfig.json (problem behoben ist, wenn ich eine änderung noResolve auf false):
{
"compilerOptions": {
"baseUrl": ".",
"types": [],
"outDir": "../out",
"paths": {
"foo": [
"../typings/foo"
],
},
"noResolve": true
},
"include": [
"**/*.ts",
],
"exclude": [
"node_modules"
]
}
proj/main.ts:
import foo from "foo"
Testungen/foo/index.d....ts:
declare function foo(num: number): number;
export default foo;
Update
Zwei Lösungen:
- Set noResolve: false
- ODER "../Testungen", um die "zählen" - Abschnitt in der tsconfig
Meine Vermutung ist, dass es ist ein Konzept einer "compilation unit", so dass:
mit
noResolve: false
und dann die compilation-unit kann dynamisch wachsen als TS folgtimport
s.Mit
noResolve: true
, dann ist die compilation unit befestigt ist so etwas wietsconfig.baseUrl/** + (tsconfig.include - tsconfi.exclude)
.Wenn Sie eine Datei außerhalb des compilation unit dann im TS kann 'beheben' ein import (finden Sie heraus den Pfad zu einem .d....ts/.ts/.tsx-Datei) aber nicht 'finden' es (eigentlich die Datei Lesen).
Diese immer noch nicht wirklich Sinn für mich, obwohl. Was ist der Sinn von 'auflösen' auf eine Lage man kennt, werden nicht in der Lage zu 'finden'?