Допустим, у меня есть эти файлы:
// foo.d.ts
declare global {
interface Console {
foo: string
}
}
// foo.js
console.foo = 'bar';
Как ограничить глобальное расширение , чтобы оно применялось только при импорте файла foo.js?
// abc.js
require('./foo')
console.foo // should be OK with TS
// Which it is.
// xyz.js
console.foo // should not be OK with TS.
// But TS says that console.foo is defined as a string.
В настоящее время я полагаюсь на интеграцию машинописи по умолчанию для VSCode, и все файлы имеют флаг //@ts-check
в начале файла.