TypeScript Version: 3.9.1-rc
Search Terms: typeerror kind
Code
Unknown
Expected behavior:
Compilation
Actual behavior:
TypeError: Cannot read property 'kind' of undefined
at getErrorSpanForNode (.../node_modules/typescript/lib/typescript.js:13845:22)
at createDiagnosticForNodeInSourceFile (.../node_modules/typescript/lib/typescript.js:13794:20)
at Object.createDiagnosticForNode (.../node_modules/typescript/lib/typescript.js:13785:16)
at .../node_modules/typescript/lib/typescript.js:41784:135
at Map.forEach (<anonymous>)
at getInitializerTypeFromAssignmentDeclaration (.../node_modules/typescript/lib/typescript.js:41766:52)
at getWidenedTypeForAssignmentDeclaration (.../node_modules/typescript/lib/typescript.js:41660:123)
at getTypeOfFuncClassEnumModuleWorker (.../node_modules/typescript/lib/typescript.js:42220:34)
at getTypeOfFuncClassEnumModule (.../node_modules/typescript/lib/typescript.js:42199:51)
at getTypeOfSymbol (.../node_modules/typescript/lib/typescript.js:42312:24)
Playground Link:
Unknown
Related Issues:
Unknown
Adding a console.log
to createDiagnosticForNode
with all its arguments prints the following:
undefined {
code: 6203,
category: 3,
key: '_0_was_also_declared_here_6203',
message: "'{0}' was also declared here.",
reportsUnnecessary: undefined,
elidedInCompatabilityPyramid: undefined
} undefined globals undefined undefined undefined
nitpick: it's spelled "compatibility"
It looks like the line that is causing the crash itself is:
// @ts-check
// this is a jest.config.js file
const config = makeConfig(/* ... */)
config.globals.__STORYBOOK__ = false // this line
// commenting it out prevents the crash
module.exports = config
where the return type of makeConfig
is import('@jest/types').Config.InitialOptions
.
We're seeing a similar issue, however, I can't seem to find the cause in our code.
@Jessidhia did you add more console.log's in other parts to find the file/line?
I've noticed quite similar (also, looking from stack trace - seemingly different one) issue. I thought that I will better file it as a dedicated issue - #38558. If it will turn out, that it is a duplicate, we can simply close the issue.
@Jessidhia, can you post a precise repro? I tried a few things with the above snippet but can't get it to happen.
@elibarzilay this happened to me today as I was setting up a new nextjs project. Basically if your checkout this example or yarn create next-app --example custom-server-typescript custom-server-typescript-app
and run yarn dev
you get this error:
TypeError: Cannot read property 'kind' of undefined
at getErrorSpanForNode (../node_modules/typescript/lib/typescript.js:13856:22)
at createDiagnosticForNodeInSourceFile (../node_modules/typescript/lib/typescript.js:13805:20)
at Object.createDiagnosticForNode (../node_modules/typescript/lib/typescript.js:13796:16)
at ../node_modules/typescript/lib/typescript.js:41824:135
at Map.forEach (<anonymous>)
at getInitializerTypeFromAssignmentDeclaration (../node_modules/typescript/lib/typescript.js:41806:52)
at getWidenedTypeForAssignmentDeclaration (../node_modules/typescript/lib/typescript.js:41700:123)
at getTypeOfFuncClassEnumModuleWorker (../node_modules/typescript/lib/typescript.js:42260:34)
at getTypeOfFuncClassEnumModule (../node_modules/typescript/lib/typescript.js:42239:51)
at getTypeOfSymbol (../node_modules/typescript/lib/typescript.js:42352:24)
at checkPropertyAccessExpressionOrQualifiedName (../node_modules/typescript/lib/typescript.js:57154:53)
at checkPropertyAccessExpression (../node_modules/typescript/lib/typescript.js:57013:17)
at checkExpressionWorker (../node_modules/typescript/lib/typescript.js:61646:28)
at checkExpression (../node_modules/typescript/lib/typescript.js:61567:38)
at maybeCheckExpression (../node_modules/typescript/lib/typescript.js:60780:34)
at checkBinaryExpression (../node_modules/typescript/lib/typescript.js:60737:25)
If you pin Typescript to 3.8.3 the error goes away. Cheers
I'm not sure if I'm doing it right, but I tried the following two chunks in an empty directory:
$ git clone https://github.com/zeit/next.js
$ cd next.js/examples/custom-server-typescript
$ npm i
$ tsc
and
$ yarn create next-app --example custom-server-typescript custom-server-typescript-app
$ cd custom-server-typescript-app
$ yarn dev
Both ran without any errors...
@elibarzilay try to change the typescript version to the latest in package.json before installing.
@elibarzilay @Multiply yeah, it installs Typescript 3.9.3 when I setup the project. I get the error described above and as I said when I switch to 3.8.3 the error goes away.
I'm using a tsc
which is wired to a build from the current master, but just in case, I repeated both of the above after editing package.json
and removed the TS line, and repeated with editing it to 3.9.3
.
Still no errors...
To make this more controllable, I used docker. This is my build file (which doesn't get any errors):
FROM ubuntu
RUN apt update \
&& apt upgrade -y \
&& apt install -y curl
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - \
&& apt install -y nodejs
RUN curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list \
&& apt update && apt install -y yarn
RUN mkdir /work
WORKDIR /work
RUN yarn create next-app --example custom-server-typescript t \
&& cd t \
&& sed -i -e 's/\("typescript": "^\)\(.*\)"/\13.9.3"/' package.json
When I switch to Nextjs version 9.4.2, Typescript version 3.9.3, I could no longer see the error
When I switch to Nextjs version 9.4.2, Typescript version 3.9.3, I could no longer see the error
Can confirm 9.4.2 of nextjs fixed it for us as well.
I changed the docker setup to change the nextjs version to 9.4.1 and to 9.4.0, and still no error...
I have the problem with typescript 3.9.3 and next 9.4.2 and ts-node 8.10.1. Switching to typescript 3.8.3 fixes the problem.
I seem to have the same issue with next 9.4.2, typescript 3.9.3 and ts-node 8.10.1.
Could be related to bad intersection types as documented here? https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-9.html#intersections-reduced-by-discriminant-properties
@Hyokune @SeyedAlirezaFatemi @anthanh can you please provide concrete repro steps (ideally involving just a handful of TS/JS files and a config file)? We've tried a bunch of different configurations with the linked repo and haven't been able to cause the exception to occur.
@Hyokune @SeyedAlirezaFatemi @anthanh can you please provide concrete repro steps (ideally involving just a handful of TS/JS files and a config file)? We've tried a bunch of different configurations with the linked repo and haven't been able to cause the exception to occur.
I reproduced the error in this repo:
https://github.com/SeyedAlirezaFatemi/ts-error
Started from https://github.com/vercel/next.js/tree/canary/examples/custom-server-typescript.
build and start and you will see the error.
(@RyanCavanaugh, FWIW, I tried this one too, and still no failures.)
@elibarzilay I opened @SeyedAlirezaFatemi repo in Gitpod and ran these commands:
yarn && yarn build && yarn start
After opening http://localhost:3000 with preview button in Open Ports tab I get the error.
Ah, I never tried yarn start
before -- I now see the crash, finally...
So, after digging through that pile of s...tuff, here's an actual minimal repro:
x.js
:
module.exports.x = 1;
module.exports = require("./y.js");
y.d.ts
:
export declare type x = 1;
Bit late with the response, sorry.
After applying your patch locally the issue went away for us. (eagerly waiting for it to be included in a release)
Had the fix been released? I still have the same issue with latest: next 9.4.4, typescript 3.9.5 and ts-node 8.10.2. node -v 12.4.0.
The same as was mentioned previously: switching to typescript 3.8.3 fixes the problem.
This is still a problem with TypeScript 3.9.7. @elibarzilay's repro fails without any modifications. Unfortunately downgrading 3.8.3 is not an option for me because old versions ironically have another bug. Will we get this problem fixed?
@elibarzilay Hi, Downgrading the TypeScript version from latest to 3.8.3
solves the problem but downgrading TS version is not a good option for me as well. Can we expect a fix for this?
Having the same issue with nextJS version 9.4.4 with Typescript version 3.9.7.
@sourabh8003 IIRC, it was only included in 4.0.
Sorry, I should have read more carefully. It's working on 4.0.0-dev.20200729. Thank you.
Most helpful comment
Had the fix been released? I still have the same issue with latest: next 9.4.4, typescript 3.9.5 and ts-node 8.10.2. node -v 12.4.0.
The same as was mentioned previously: switching to typescript 3.8.3 fixes the problem.