snippettypescriptCritical
How do I decide whether @types/* goes into `dependencies` or `devDependencies`?
Viewed 0 times
howdecidewhethergoesdependenciesdevdependenciestypesinto
Problem
I use TypeScript 2 in my project. I'd like to use some js library, but also typings for that library. I can install types with simple
How should I decide whether @types/* goes into
npm install @types/some-library. I'm not sure if I should --save or --save-dev them. It seems to me that even DefinetelyTyped GitHub readme kind of mentions both versions, but never explains them. I would think that @types should be in devDependencies, as types are needed for development and aren't used in runtime, but I saw many times @types in just dependencies. I'm confused.How should I decide whether @types/* goes into
dependencies or devDependencies? Are there actually some more or less official instructions?Solution
Let's say you're developing a package "A" that have
Right now TypeScript consumers of package "A" are unable to guess what
In that particular case you need to place
@types/some-module package in devDependencies. For some reason you're exporting the type from @types/some-module:import { SomeType } from 'some-module';
export default class APackageClass {
constructor(private config: SomeType) {
// …
}
}Right now TypeScript consumers of package "A" are unable to guess what
SomeType is, since devDependencies of package "A" are not installed.In that particular case you need to place
@types/* package with regular dependencies. For other cases devDependencies are good enough.Code Snippets
import { SomeType } from 'some-module';
export default class APackageClass {
constructor(private config: SomeType) {
// …
}
}Context
Stack Overflow Q#45176661, score: 372
Revisions (0)
No revisions yet.