Closed dsebastien closed 8 years ago
Do you have a tsconfig.json
file? Can you share that? Two files are always generated, I wouldn't delete it manually. But you can just reference/exclude the one you want. I'll add this to the Typings FAQ and the note about --ambient
is good, I've been trying to think about how to support that effectively and you're comment made me realised search should be returning based on it only.
If you use files
in tsconfig.json
, try:
"files": ["typings/main.d.ts"]
If you are compiling everything, use exclude
:
"exclude": ["typings/browser"]
The reason the folders are like that is literally to support the browser
exclude use-case, which is kind of disappointing but it's the only way this'll work for you right now - so yay!
Thanks @blakeembrey I didn't even think of excluding one. I found it weird to get two copies. What do you mean by browser exclude use case? If it's about node vs browser scenarios, then maybe having some configuration flag in the config file would help?
I indeed have a tsconfig.json, here it is just in case (fileGlob is there while waiting for actual glob support in tsconfig.json although I do not use Atom ^^):
{
"version": "1.7.3",
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"removeComments": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"noEmitOnError": false,
"preserveConstEnums": true,
"inlineSources": false,
"sourceMap": false,
"outDir": "./.tmp",
"project": "./app",
"moduleResolution": "node",
"listFiles": false
},
"formatCodeOptions": {
...
},
"filesGlob": [
"./typings/*.d.ts",
"./app/**/*.ts",
"./test/**/*.ts"
],
"exclude": [
"node_modules",
"jspm_packages"
]
}
Adding the following seem to have made tsc happier:
"exclude": [
"node_modules",
"jspm_packages",
"typings/browser",
"typings/browser.d.ts"
]
@dsebastien Yep, that's what you needed. Also, from your configuration, I don't believe you should be using fileGlob
- the project will resolve everything without excludes anyway.
The browser/main versions are to support the browser
field in package.json
. For instance, https://github.com/blakeembrey/popsicle/blob/master/package.json#L12-L18. TypeScript can't actually support node resolution on the browser properly, so I supported it in Typings.
Also, it works in typings.json
too - https://github.com/typings/typed-debug/blob/master/typings.json. There's a few cases where the browser API is just different to the node API and it's useful to have the correct typings in your environment.
Hello @blakeembrey,
I would like to get typings for the localForage library and use those in my project. At first, I tried using tsd and thus the following typings file: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/localForage/localForage.d.ts
Unfortunately, it imports the es6-promise typings and because Angular 2 (which I also use in my project) expose that already, I end up with the dreaded duplicate identifier error (on 'Promise'):
Then, since I wanted to give your project a try, I've decided to give it a go, except that I don't really know where to start :)
I first tried a command that failed (can't remember what it was), which led me to fork the registry and try to add a reference towards definitelytyped for localForage: https://github.com/dsebastien/registry-1/commit/828d9998570d4d548f15f9eff9baa8f92e7cc239
Then I found the
--ambient
flag and realized that it's probably not worth a pull request (?).Then I've tried
typings install localForage --ambient --save
which did find the typings on DefinitelyTyped and download those:Unfortunately, tsc complains a bit afterwards:
Now I'm wondering how to fix this. I assume that removing either the contents of the browser folder or the ambient one would fix this, but is it the way to do? Am I missing some other flag?
Or do I need to create some other type of module (i.e., non-ambient) like https://github.com/typings/typed-debug from the info I have on DefinitelyTyped?
Any pointers will be very appreciated :)