Настройка представляет собой «Create React App» со следующей jsconfig.json
:
{
"compilerOptions": {
"experimentalDecorators": true,
"baseUrl": "src"
},
"include": ["src"]
}
Структура каталогов:
.
└── src
└── Components
└── Foo
├── Bar
│ ├── Bar.js
│ ├── Bar.d.ts
│ └── index.js
├── Foo.js
└── index.js
// React component `Foo` imports a component `Bar`:
import { Bar } from './Bar'
export function Foo(props) {
//
}
// And gets full intellisense via `Bar.d.ts`:
type Props = {
/** ... */
}
export declare function Bar(
props: Props
): React.FunctionComponent
Но Bar.js
сам по себе не получает intellisense из собственного файла Bar.d.ts
, есть ли способ исправить это? Я пробовал использовать директиву triple-sla sh (/// <reference path="Bar.d.ts"/>
), но это не помогло. Некоторый JSDo c помог, но довольно бессмысленно иметь специальный файл декларации и при этом использовать JSDoc; он также, вероятно, работает только с VSCode, что нежелательно:
export function Bar(
// When `type Props` is exported from the `.d.ts`:
/** @type {import("./Bar").Props} */ props
) {