#node.js #typescript #types #definition
#node.js #typescript #типы #определение
Вопрос:
Обновить:
это не typescript, а «проблема» с ts-узлом
я ответил себе, поэтому, если вас все еще интересует «проблема» — читайте дальше 🙂
извините за путаницу
возможно, у меня СОВЕРШЕННО неправильное представление о файле index.d.ts.. но моя идея заключалась в том, что я могу объявлять типы внутри него, и затем они «определяются глобально», поэтому мне не нужно повторно объявлять их везде, где я их использую (файл a.ts и b.ts)
структура:
root
src
a.ts
b.ts
node_modules
tsconfig.json
index.d.ts
package.json
например, у меня есть файл index.d.ts:
type XYZType = { test: string }
в моем файле ./src / a.ts у меня есть:
const x: XYZType = { test: 'hello' }
console.log(x)
в моем файле ./src / b.ts у меня есть:
const x: XYZType = { test: 'world' }
console.log(x)
однако vsc (Visual Studio Code) не жалуется на отсутствие типа XYZType .. но когда я пытаюсь разрешить компиляцию typescript, это происходит…:
error TS2304: Cannot find name 'XYZType'.
и указывает на файл a.ts и b.ts
итак .. чтобы быть очевидным.. похоже, я делаю что-то не так..
я последовал небольшому примеру из ссылки levelup
итак, мой tsconfig.json выглядит так
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": ["node_modules/*", "src/types/*"]
}
},
"include": ["src/**/*"]
}
я использую:
"ts-node": "^9.0.0",
"typescript": "^4.0.3"
я нашел много запросов на переполнение стека с тем же названием.. но совершенно другой контент (собственные объявления пакетов?) вот почему это меня смущает, и у меня такое чувство, что я совершенно не прав в том подходе, который я ищу
надеюсь, кто-нибудь может помочь и объяснить, что не так :/
заранее спасибо 🙂
Ответ №1:
хорошо, вау — это не typescript, а проблема с ts-узлом
в приведенной в примере ссылке сценарий package.json «dev» настроен следующим образом
"scripts": {
"dev": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts",
}
но должен быть:
"scripts": {
"dev": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' --files src/index.ts",
}
(необходимо добавить ‘—files‘)
извините за путаницу, но, надеюсь, это поможет кому-то, кто работает с той же проблемой 🙂
Комментарии:
1. Спасибо, я везде искал ответ, но не мог понять, почему, пока не увидел это