Хорошо, это не решение, а обходной путь (я OP), я решил сохранить файл с его расширением js
и создать отдельный файл ts
с тем же именем для получения типов. , Когда есть два файла с одинаковым именем, упаковщик предпочитает js
один, поэтому будет использоваться содержимое файла js
со встроенным требованием, но компилятор машинописного текста предпочитает файл ts
, поэтому я получаю все проверки типов во время разработки и при запуске tsc
typscript сгенерирует правильные объявления для файла.
//DataClass.js (real file, will be included in the real bundle)
export const Data = {
get Phones() {
return require('./phones.ts').default;
},
get Users() {
return require('./users.ts').default;
}
}
//DataClass.ts (fake file, will help typescript compiler to generate declaration file for the index)
import phones from './phones.ts';
import users from './users.ts'
export const Data = {phones, users};
Это определенно не решение, а просто неприятный обходной путь. Но, к сожалению, это единственное решение, которое я получил до сих пор. Если кто-нибудь знает лучшее решение, пожалуйста, опубликуйте его здесь.