-
-
Notifications
You must be signed in to change notification settings - Fork 574
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add TypeScript type definitions #801
Conversation
Adding dtslint to test (lint) the type definitions and @types/node since they're a depedency of these types
Good stuff! |
@@ -0,0 +1,168 @@ | |||
// TypeScript Version: 3.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Defining the specific version here works here. But I wanted to dump everything below that I looked into because someone more knowledgeable about dtslint
might know more?
From what I understand, by default dtslint
will check all minor versions starting from 2.0
up to next
. Currently, that is 2.0
, 2.1
, ..., 3.3
, next
(will be 3.4.
).
@types/parsimmon
is a depedency of dtslint
: (seems like types generally are devDependencies
)
yarn why @types/parsimmon
=> Found "@types/parsimmon@1.10.0"
info Reasons this module exists
- "dtslint#definitelytyped-header-parser" depends on it
- Hoisted from "dtslint#definitelytyped-header-parser#@types#parsimmon"
And running dtslint
without the version defined here was erroring:
Output of dtslint types
Installing to node_modules/dtslint/typescript-installs/2.0...
Installed!
Installing to node_modules/dtslint/typescript-installs/2.1...
Installed!
Installing to node_modules/dtslint/typescript-installs/2.2...
Installed!
Installing to node_modules/dtslint/typescript-installs/2.3...
Installed!
Installing to node_modules/dtslint/typescript-installs/2.4...
Installed!
Installing to node_modules/dtslint/typescript-installs/2.5...
Installed!
Installing to node_modules/dtslint/typescript-installs/2.6...
Installed!
Installing to node_modules/dtslint/typescript-installs/2.7...
Installed!
Installing to node_modules/dtslint/typescript-installs/2.8...
Installed!
Installing to node_modules/dtslint/typescript-installs/2.9...
Installed!
Installing to node_modules/dtslint/typescript-installs/3.0...
Installed!
Installing to node_modules/dtslint/typescript-installs/3.1...
Installed!
Installing to node_modules/dtslint/typescript-installs/3.2...
Installed!
Installing to node_modules/dtslint/typescript-installs/3.3...
Installed!
Installing to node_modules/dtslint/typescript-installs/next...
Installed!
Error: Errors in typescript@2.0 for external dependencies:
../node_modules/@types/parsimmon/index.d.ts(45,75): error TS2305: Module 'Parsimmon' has no exported member 'Reply'.
../node_modules/@types/parsimmon/index.d.ts(45,96): error TS2305: Module 'Parsimmon' has no exported member 'Parser'.
../node_modules/@types/parsimmon/index.d.ts(91,3): error TS2464: A computed property name must be of type 'string', 'number', 'symbol', or 'any'.
../node_modules/@types/parsimmon/index.d.ts(91,3): error TS7008: Member '[P in keyof' implicitly has an 'any' type.
../node_modules/@types/parsimmon/index.d.ts(91,4): error TS2304: Cannot find name 'P'.
../node_modules/@types/parsimmon/index.d.ts(91,9): error TS2304: Cannot find name 'keyof'.
../node_modules/@types/parsimmon/index.d.ts(91,15): error TS1005: ']' expected.
../node_modules/@types/parsimmon/index.d.ts(91,15): error TS2304: Cannot find name 'TLanguageSpec'.
../node_modules/@types/parsimmon/index.d.ts(91,28): error TS1005: ';' expected.
../node_modules/@types/parsimmon/index.d.ts(91,29): error TS1128: Declaration or statement expected.
../node_modules/@types/parsimmon/index.d.ts(91,49): error TS2304: Cannot find name 'TLanguageSpec'.
../node_modules/@types/parsimmon/index.d.ts(91,75): error TS2304: Cannot find name 'TLanguageSpec'.
../node_modules/@types/parsimmon/index.d.ts(91,89): error TS2304: Cannot find name 'P'.
../node_modules/@types/parsimmon/index.d.ts(91,92): error TS1109: Expression expected.
../node_modules/@types/parsimmon/index.d.ts(95,3): error TS2464: A computed property name must be of type 'string', 'number', 'symbol', or 'any'.
../node_modules/@types/parsimmon/index.d.ts(95,3): error TS7008: Member '[P in keyof' implicitly has an 'any' type.
../node_modules/@types/parsimmon/index.d.ts(95,4): error TS2304: Cannot find name 'P'.
../node_modules/@types/parsimmon/index.d.ts(95,9): error TS2304: Cannot find name 'keyof'.
../node_modules/@types/parsimmon/index.d.ts(95,15): error TS1005: ']' expected.
../node_modules/@types/parsimmon/index.d.ts(95,15): error TS2304: Cannot find name 'TLanguageSpec'.
../node_modules/@types/parsimmon/index.d.ts(95,28): error TS1005: ';' expected.
../node_modules/@types/parsimmon/index.d.ts(95,29): error TS1128: Declaration or statement expected.
../node_modules/@types/parsimmon/index.d.ts(95,38): error TS2304: Cannot find name 'TLanguageSpec'.
../node_modules/@types/parsimmon/index.d.ts(95,52): error TS2304: Cannot find name 'P'.
../node_modules/@types/parsimmon/index.d.ts(95,55): error TS1109: Expression expected.
../node_modules/@types/parsimmon/index.d.ts(96,2): error TS1128: Declaration or statement expected.
../node_modules/@types/parsimmon/index.d.ts(102,25): error TS2304: Cannot find name 'Result'.
../node_modules/@types/parsimmon/index.d.ts(216,18): error TS2304: Cannot find name 'Mark'.
../node_modules/@types/parsimmon/index.d.ts(220,49): error TS2304: Cannot find name 'Node'.
../node_modules/@types/parsimmon/index.d.ts(258,65): error TS2305: Module 'Parsimmon' has no exported member 'Reply'.
../node_modules/@types/parsimmon/index.d.ts(304,33): error TS2304: Cannot find name 'Rule'.
../node_modules/@types/parsimmon/index.d.ts(304,40): error TS2304: Cannot find name 'Language'.
../node_modules/@types/parsimmon/index.d.ts(305,48): error TS2304: Cannot find name 'TypedRule'.
../node_modules/@types/parsimmon/index.d.ts(398,49): error TS2304: Cannot find name 'Result'.
../node_modules/@types/parsimmon/index.d.ts(417,11): error TS7010: 'seqObj', which lacks return-type annotation, implicitly has an 'any' return type.
../node_modules/@types/parsimmon/index.d.ts(417,39): error TS1005: ',' expected.
../node_modules/@types/parsimmon/index.d.ts(417,39): error TS2300: Duplicate identifier 'T'.
../node_modules/@types/parsimmon/index.d.ts(417,41): error TS1005: ',' expected.
../node_modules/@types/parsimmon/index.d.ts(417,49): error TS1005: ',' expected.
../node_modules/@types/parsimmon/index.d.ts(417,49): error TS2300: Duplicate identifier 'T'.
../node_modules/@types/parsimmon/index.d.ts(417,82): error TS1005: ']' expected.
../node_modules/@types/parsimmon/index.d.ts(417,87): error TS1005: ')' expected.
../node_modules/@types/parsimmon/index.d.ts(417,89): error TS1109: Expression expected.
../node_modules/@types/parsimmon/index.d.ts(417,91): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
../node_modules/@types/parsimmon/index.d.ts(417,91): error TS2365: Operator '<' cannot be applied to types '<T>(fn: (input: string, i: number) => any) => Parser<T>' and 'number'.
../node_modules/@types/parsimmon/index.d.ts(417,98): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
../node_modules/@types/parsimmon/index.d.ts(417,103): error TS1109: Expression expected.
../node_modules/@types/parsimmon/index.d.ts(417,104): error TS1128: Declaration or statement expected.
../node_modules/@types/parsimmon/index.d.ts(417,115): error TS2464: A computed property name must be of type 'string', 'number', 'symbol', or 'any'.
../node_modules/@types/parsimmon/index.d.ts(417,116): error TS2304: Cannot find name 'K'.
../node_modules/@types/parsimmon/index.d.ts(417,121): error TS2304: Cannot find name 'Key'.
../node_modules/@types/parsimmon/index.d.ts(417,127): error TS2304: Cannot find name 'T'.
../node_modules/@types/parsimmon/index.d.ts(417,129): error TS2304: Cannot find name 'K'.
../node_modules/@types/parsimmon/index.d.ts(417,134): error TS1109: Expression expected.
../node_modules/@types/parsimmon/index.d.ts(439,39): error TS2304: Cannot find name 'StreamType'.
../node_modules/@types/parsimmon/index.d.ts(553,22): error TS2304: Cannot find name 'Index'.
../node_modules/@types/parsimmon/index.d.ts(578,99): error TS2464: A computed property name must be of type 'string', 'number', 'symbol', or 'any'.
../node_modules/@types/parsimmon/index.d.ts(578,100): error TS2304: Cannot find name 'K'.
../node_modules/@types/parsimmon/index.d.ts(578,105): error TS2304: Cannot find name 'Key'.
../node_modules/@types/parsimmon/index.d.ts(579,1): error TS1128: Declaration or statement expected.
I also tried adding "files": ["index.d.ts", "test.ts"]
to types/tsconfig.json
to only run against those files and "exclude": ["../node_modules"]
and "exclude": ["node_modules"]
but none worked for me.
Lastly, the current version of TS is 3.3
but going above 3.0
here errored with Error: Don't use
// TypeScript Version for newer TS versions, use typesVerisons instead
. It seems typeVersions
isn't necessary currently since only a single version of types will be provided? (see here for more info on typeVersions
)
dtslint
to test the type definitionsdtslint
script topackage.json
and run in CItypes
key topackage.json
(see here)types/index.d.ts
in the final packageResolves #794.