Я хотел бы включить файл определения без использования трехслойных директив, поскольку я считаю, что это правильный способ сделать это.
Допустим, моя структура файла выглядит следующим образом:
├───tsconfig.json
├───module
│ └────def.d.ts
└───test
└────test.ts
Вот tsconfig. json:
{
"compileOnSave": false,
"compilerOptions": {
"target": "ESNext",
"module": "commonjs",
"moduleResolution": "node",
"outDir": "dist/",
"rootDir": ".",
"baseUrl": "."
},
"include": [
"module/**/*.d.ts",
"test/**/*.ts"
],
"exclude": [
"node_modules",
"dist"
]
}
Вот def.d.ts :
export declare module mymodule {
export interface ITest {
test: any
}
}
И вот test.ts :
module test {
var t: mymodule.ITest = { test: null }
}
Я получаю следующую ошибку:
test/test.ts:3:12 - error TS2503: Cannot find namespace 'mymodule'.
3 var t: mymodule.ITest = { test: null }
~~~~~~~~
Found 1 error.
Я также пытался добавить typeRoots
в tsconfig безрезультатно. Как я могу убедиться, что мой файл определения читается?