@@ -91,6 +91,68 @@ describe("unittests:: tsbuild:: moduleResolution:: handles the modules and optio
91
91
} ) ,
92
92
commandLineArgs : [ "-b" , "packages/pkg1.tsconfig.json" , "packages/pkg2.tsconfig.json" , "--verbose" , "--traceResolution" ] ,
93
93
} ) ;
94
+
95
+ verifyTsc ( {
96
+ scenario : "moduleResolution" ,
97
+ subScenario : "resolution from d.ts of referenced project" ,
98
+ sys : ( ) =>
99
+ TestServerHost . createWatchedSystem ( {
100
+ "/home/src/workspaces/project/common.d.ts" : "export type OnValue = (value: number) => void" ,
101
+ "/home/src/workspaces/project/producer/index.ts" : dedent `
102
+ export { ValueProducerDeclaration } from "./in-js"
103
+ import { OnValue } from "@common"
104
+ export interface ValueProducerFromTs {
105
+ onValue: OnValue;
106
+ }
107
+ ` ,
108
+ "/home/src/workspaces/project/producer/in-js.d.ts" : dedent `
109
+ import { OnValue } from "@common"
110
+ export interface ValueProducerDeclaration {
111
+ onValue: OnValue;
112
+ }
113
+ ` ,
114
+ "/home/src/workspaces/project/producer/tsconfig.json" : jsonToReadableText ( {
115
+ compilerOptions : {
116
+ strict : true ,
117
+ composite : true ,
118
+ module : "nodenext" ,
119
+ moduleResolution : "nodenext" ,
120
+ paths : {
121
+ "@common" : [ "../common.d.ts" ] ,
122
+ } ,
123
+ libReplacement : false ,
124
+ } ,
125
+ } ) ,
126
+ "/home/src/workspaces/project/consumer/index.ts" : dedent `
127
+ import { ValueProducerDeclaration, ValueProducerFromTs } from "@producer"
128
+ declare let v: ValueProducerDeclaration;
129
+ // n is implicitly any because onValue is actually any (despite what the tooltip says)
130
+ v.onValue = (n) => {
131
+
132
+ }
133
+
134
+ // n is implicitly number as expected
135
+ declare let v2: ValueProducerFromTs;
136
+ v2.onValue = (n) => {
137
+
138
+ }` ,
139
+ "/home/src/workspaces/project/consumer/tsconfig.json" : jsonToReadableText ( {
140
+ compilerOptions : {
141
+ strict : true ,
142
+ module : "nodenext" ,
143
+ moduleResolution : "nodenext" ,
144
+ paths : {
145
+ "@producer" : [ "../producer/index" ] ,
146
+ } ,
147
+ libReplacement : false ,
148
+ } ,
149
+ references : [
150
+ { path : "../producer" } ,
151
+ ] ,
152
+ } ) ,
153
+ } ) ,
154
+ commandLineArgs : [ "--b" , "consumer" , "--traceResolution" , "-v" ] ,
155
+ } ) ;
94
156
} ) ;
95
157
96
158
describe ( "unittests:: tsbuild:: moduleResolution:: impliedNodeFormat differs between projects for shared file" , ( ) => {
0 commit comments