Description
Bug Report
๐ Search Terms
- jsdoc
- tsdoc
- TS2304: Cannot find name 'https'.
@link
@remarks
๐ Version & Regression Information
- This is the behaviour in every version I tried, and I reviewed the FAQ for entries โ
I checked on 4.6.4, 4.6.2.
I tried checking on 4.7.0-rc1 but I got unrelated errors.
โฏ Playground Link
I don't understand how to use the 'Bug Workbench', it doesn't seem to pick up the config I enter.
But when I set up those 3 files in a directory and run npm install
then npm build
, I get this error
...
Emitting ...
Emit finished!
node_modules/typed-factorio/generated/classes.d.ts:238:3 - error TS2304: Cannot find name 'https'.
238 on_init(f: (() => void) | undefined): void
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Process finished with exit code 2
Here's a reproduction inside the TSTL playground. You might have to edit the file to trigger it
๐ป Code
An MRE is below, but the error originates in the TSDoc of the Typed Factorio project, in classes.d.ts
.
/**
* Register a function to be run on mod initialization...
*
* {@link https://lua-api.factorio.com/latest/LuaBootstrap.html#LuaBootstrap.on_init View documentation}
* @param f The handler for this event. Passing `nil` will unregister it.
* @remarks For more context, refer to the {@link https://lua-api.factorio.com/latest/Data-Lifecycle.html Data Lifecycle} page.
* @example Initialize a `players` table in `global` for later use.
*
* ```
* script.on_init(function()
* global.players = {}
* end)
* ```
*/
on_init(f: (() => void) | undefined): void
If I remove the {@link ...}
from the @remarks
, then it works!
/**
* Register a function to be run on mod initialization...
*
* {@link https://lua-api.factorio.com/latest/LuaBootstrap.html#LuaBootstrap.on_init View documentation}
* @param f The handler for this event. Passing `nil` will unregister it.
* @remarks For more context, refer to the xxxxxxxxxxxxxxxxxx page.
* @example Initialize a `players` table in `global` for later use.
*
* ```
* script.on_init(function()
* global.players = {}
* end)
* ```
*/
on_init(f: (() => void) | undefined): void
The @remarks
and the {@link ...}
was added last week:
If I revert Typed Factorio to v1.0.0, then again, there's no error.
Minimal, reproducible example
click to expand
./control.ts
script.on_init(() => {
log(`mod is added to the save`)
})
./package.json
{
"name": "my-factorio-mod",
"version": "0.5.0",
"private": true,
"scripts": {
"build": "tstl",
"dev": "tstl --watch"
},
"engines": {
"node": "~14.19.1"
},
"devDependencies": {},
"dependencies": {
"lua-types": "^2.11.0",
"typescript-to-lua": "1.4.4",
"typed-factorio": "1.1.0",
"typescript": "4.6.2"
},
"license": "UNLICENSED",
"peerDependencies": {},
"optionalDependencies": {},
"bundledDependencies": []
}
./tsconfig.json
{
"$schema": "https://raw.githubusercontent.com/TypeScriptToLua/vscode-typescript-to-lua/master/tsconfig-schema.json",
"compilerOptions": {
"target": "esnext",
"lib": [
"esnext"
],
"module": "commonjs",
"moduleResolution": "node",
"types": [
"typescript-to-lua/language-extensions",
"lua-types/5.2",
"typed-factorio/runtime"
],
"plugins": [
{
"name": "typescript-tstl-plugin"
}
],
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"explainFiles": true,
"forceConsistentCasingInFileNames": true,
"listEmittedFiles": true,
"listFiles": true,
"noImplicitAny": true,
"noImplicitThis": true,
"sourceMap": false,
"strict": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"traceResolution": true,
"noImplicitReturns": true,
"noImplicitOverride": true,
"noFallthroughCasesInSwitch": true
},
"tstl": {
"luaTarget": "5.2",
"tstlVerbose": true,
"noHeader": true,
"noImplicitSelf": true,
"luaLibImport": "require"
}
}
๐ Actual behavior
TSDoc with a {@link https:...}
inside of a @remark
block causes an error
* @remarks For more context, refer to the {@link https://lua-api.factorio.com/latest/Data-Lifecycle.html Data Lifecycle} page.
node_modules/typed-factorio/generated/classes.d.ts:238:3 - error TS2304: Cannot find name 'https'.
238 on_init(f: (() => void) | undefined): void
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Process finished with exit code 2
๐ Expected behavior
TSDoc with a {@link https:...}
inside of a @remark
block does not cause an error
Workaround
A workaround is to add "skipLibCheck": true
to tsconfig.json
> compilerOptions.