yarnpkg - Bagaimana cara menambah definisi jenis tersuai ketika menggunakan rujukan Typescript dalam ruang kerja Yarn?


Saya sedang mencuba untuk menghasilkan repositori ruang kerja yarn contoh dengan ciri rujukan baru Typescript:

https://github.com/tommedema/serverless-mono-example/tree/feature/external-types

Apabila perpustakaan luaran tidak mempunyai definisi jenis, sepatutnya boleh untuk menambah ini secara manual. Apa yang telah saya lakukan setakat ini:

  1. mencipta ruang kerja packages/types
  2. menambah satu contoh di packages/types/camelcase dengan fail index.d.ts:

    declare module 'camelcase' { export default function camelCase( strs: string | string[], options: { pascalCase?: boolean } ): string }

  3. mengemas kini pakej bergantung packages/random tsconfig.json untuk mempunyai rujukan baru kepada pakej jenis:

    { "extends": "../../tsconfig.settings.json", "compilerOptions": { "outDir": "dist", "rootDir": "src" }, "references": [ { "path": "../types" } ] }

  4. mengemas kini typeRoots dalam tsconfig.settings.json:

    "typeRoots": [ "./node_modules/@types", "./packages/types" ],

Namun walaupun telah menetapkan kedua-dua rujukan serta typeRoots, TypeScript masih tidak dapat mencari definisi jenis:

[ts]
Could not find a declaration file for module 'camelcase'. '/Users/tommedema/projects/vg/demos/serverless-mono-example/node_modules/camelcase/index.js' implicitly has an 'any' type.
  Try `npm install @types/camelcase` if it exists or add a new declaration (.d.ts) file containing `declare module 'camelcase';`

Adakah penggunaan typeroots saya tidak sah? Adakah logik menggunakan rujukan untuk mencapai ini? Mengapa TypeScript tidak dapat menemui definisi jenis?