javascript - TypeScript .d.ts-deklarationer upptäcks inte när checkJs används
Jag skulle vilja lägga till typdefinitioner till en befintlig JavaScript-kodbas
Jag försöker definiera en funktion i min index.d.ts:
declare function func(): () => 42;
I index.js:
// NOT type-checked
const func = () => {};
Filen jsconfig.json:
{
"compilerOptions": {
"module": "ES6",
"noEmit": true,
"checkJs": true,
"allowJs": true,
"strict": true
},
"exclude": ["node_modules"]
}
Medan import och uttryckliga JSDoc-kommentarer relaterade till .d.ts typkontrolleras korrekt, verkar func-typen som deklareras i .d.ts-filen inte upptäckas
Inte säker på om det är avsedd beteende, bugg eller felkonfiguration
Den fullständiga repro är tillgänglig på GitHub
Svar #1
Du behöver ange typen uttryckligen, på följande sätt:
// index.d.ts
declare namespace MyNamespace {
type MyFunc = () => 42;
}
/** @type {MyNamespace.MyFunc} */
const func = () => 42;
// const func = () => {}; // this will now yield an error
